Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re^4: Replaying Santa Claus Golf Apocalypse with Pugs/Perl6

by pdcawley (Hermit)
on Mar 29, 2005 at 12:56 UTC ( #443121=note: print w/ replies, xml ) Need Help??


in reply to Re^3: Replaying Santa Claus Golf Apocalypse with Pugs/Perl6
in thread Replaying Santa Claus Golf Apocalypse with Pugs/Perl6

It's a rubyish thing: Open this and then call the block for every line of the resulting file handle, closing the file at the end. I'd not be surprised if it's a hopeful figment of my imagination.


Comment on Re^4: Replaying Santa Claus Golf Apocalypse with Pugs/Perl6
Re^5: Replaying Santa Claus Golf Apocalypse with Pugs/Perl6
by rg0now (Chaplain) on Mar 29, 2005 at 19:17 UTC
    Open this and then call the block for every line of the resulting file handle, closing the file at the end.

    Ok, I see. How about this one?

    (=<>)[0..9].print
    This seems to work and it is semantically much closer to what you proposed: it opens the file, calls print (which is not a block, but I think, it could be made one for no good) for each requested line.

    It is an interesting question, whether we could omit the parentheses around =<>. Although Pugs does not seem to like it, I am not entirely sure that [] should bind so tight.

    rg0now

      Shouldn't that be like this?

      (=<>)[0..9]».print

      -nuffin
      zz zZ Z Z #!perl
        It might be clearer to write it that way, and it emphasizes that you're printing each element individually, but the other probably works as well, if we assume that most of the builtin types including the aggregate types respond to .print.
        I have just found the description of the construct you refer to in S12, and I like it pretty much. For those monks, who, just like me, quickly get tired of the overdose of Perl 6 that comes with a Synopsis, I copy the relevant part here verbatim:

        Parallel dispatch

        Any of the method call forms may be turned into a hyperoperator by treating the method call as a postfix:

        @object».meth(@args) # calls one method on each @object».?meth(@args) # calls method if there is one on each @object».*meth(@args) # calls all methods (0 or more) on each @object».+meth(@args) # calls all methods (1 or more) on each @object».=meth(@args) # calls mutator method on each @object».:meth(@args) # calls private method on each

        Pretty nice, I think. Is there any other programming language that allows anything similar to Perl 6 parallel dispatch?

        rg0now

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (9)
As of 2014-10-20 11:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (75 votes), past polls