On 9/29/05, Austin Hastings <[EMAIL PROTECTED]> wrote:
> Luke Palmer wrote:
> >>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.

Well, I see two reasons for not allowing arity zero.  First, I think
it's too easy to come up with a function with minimum arity zero:

    my @lengths = @list.map:&length   # oops, infinite loop

Second, you don't get anything by doing this:

    for @list -> [EMAIL PROTECTED] {
       ...
    }

As it's equivalent to:

    loop {
        ...
    }

Where you use @list instead of @items.

Luke

Reply via email to