Reputation: 63
I was looking at the silly/cute/brilliant "sleep sort" that seems to have originated over at 4chan. To sort an array of ints, the idea is roughly
foreach elt in @array spawn thread(elt)
where thread(n) does
sleep n print n
so the smaller values get printed earlier.
There's a Perl6 implementation
@foo = @foo>>.&sleep;
I get that >>
'hypers' the operator, and that this assumes hypering is automatically parallelized. But the .&
confuses me.
Can anyone explain this?
thanks
Upvotes: 6
Views: 220
Reputation: 12842
If you have a function yourfunc
, then you can grab a reference to it with the ampersand, &yourfunc
. The syntax $obj.$function
just invokes $function
with one argument, $obj
. So one could just as well write $function($obj)
- except that this syntax doesn't allow the use of a hyper.
But whoever came up with this "implementation" was wrong on three accounts:
@foo
will not be sorted at all, even if the first point didn't apply.Upvotes: 10