Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Subroutine chaining idiom requested

by premchai21 (Curate)
on May 24, 2001 at 06:49 UTC ( #82799=note: print w/ replies, xml ) Need Help??


in reply to Subroutine chaining idiom requested

Hmmm... I've never read that, but to just construct one on my own:
$agenda = [ sub { "Hello" }, sub { scalar reverse shift }, sub { chop +shift } ]; chain($agenda, [ ]); ### BEGIN GOLF MODE ### sub chain($$) { my@x=@{+pop};foreach(@{+shift}){@x=$_->(@x)}@x } ### END GOLF MODE ###

Update: Fixed argument-modification error, thanks to tilly for pointing that out.

Replies are listed 'Best First'.
Re (tilly) 2: Subroutine chaining idiom requested
by tilly (Archbishop) on May 24, 2001 at 07:24 UTC
    Did someone say golf?
    sub chain{(*f,*_)=@_;@_=&$_ for@f;@_}
    Of course you probably want strict compliant and it is bad style to modify your arguments in place. In which case it is probably better to make that:
    sub chain{my($f,$a)=@_;$a=[&$_(@$a)]for@$f;@$a}
    which is still reasonable...

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://82799]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (5)
As of 2016-06-30 02:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My preferred method of making French fries (chips) is in a ...











    Results (388 votes). Check out past polls.