Luke Palmer wrote:
>>On 9/29/05, Dave Whipp <[EMAIL PROTECTED]> wrote:
>
>
>>>> for grep {defined} @in -> $item, ?$next {
>>>> print $item unless defined $next && $item eq $next;
>>>> }
>>>>
>>>>
>>
>>
>
>>This is an interesting idea. Perhaps "for" (and "map") shift the
>>minimum arity of the block from the given list and bind the maximum
>>arity. Of course, the minimum arity has to be >= 1 lest an infinite
>>loop occur.
>
>
Or not. We've already seen idioms like
for (;;) ...
If you specify your minimum arity as 0, then you're obviously planning to deal
with it. This presumes that iterators can handle behind-the-scenes updating, of
course.
>>But then perhaps you have another way to avoid integer
>>indices:
>>
>> for @list -> $this, [EMAIL PROTECTED] {
>> ...
>> }
>>
>>As long as you don't look backwards. Looking backwards makes problems
>>for GC in lazy contexts, so this might just be perfect.
>
Plus it's hard to talk about backwards. If you say
for @l -> ?$prev, $curr, ?$next {...}
what happens when you have two items in the list? I think we're best off using
signature rules: optional stuff comes last.
=Austin