Front page | perl.perl6.language |
Postings from March 2005
Re: for @list ⊂
Thread Previous
|
Thread Next
From:
Rod Adams
Date:
March 12, 2005 18:23
Subject:
Re: for @list ⊂
Message ID:
4233A426.2080006@rodadams.net
Luke Palmer wrote:
>Rod Adams writes:
>
>
>>Are the following all legal and equivalent?
>>
>> for 1..10 -> $a, $b { say $a, $b };
>>
>> for 1..10 { say $^a, $^b };
>>
>> sub foo ($a, $b) { say $a, $b };
>> for 1..10 &foo;
>>
>>
>
>Almost. The last one should be:
>
> for 1..10, &foo;
>
>
Doh! I knew that.
>
>
>
>>What happens with:
>>
>> for 1..10 -> *@a { say @a };
>>
>>
>
>Good question. That's a function of how C<for> interprets the arity. The
>formal arity of a sub with *@ is Inf, so I suppose say would get 1..10
>and the loop would run once.
>
>That's probably the best way for C<for> to behave, because that's what
>I'd expect in this case.
>
>
That's what I'd expect as well. It's not terribly useful, but worth
clarifying.
A folowup question is how to get:
for @a, @b, @c -> @x { say @x };
to work properly. "Properly" being defined here as three iterations.
The best guess I can put forward is:
for \@a, \@b, \@c -> @x { say @x };
certainly
for \@a, \@b, \@c -> $x { say $x };
should work. Are there any non-slashy versions of this?
-- Rod Adams
Thread Previous
|
Thread Next