On 8/19/04, [EMAIL PROTECTED] (David Green) wrote:
> >On Aug 14, 2004, at 5:52 PM, Larry Wall wrote:
>
> >> for all $*IN # all() is junction
> >> for each $*IN # each method wants closure if we follow Ruby
> >> for next $*IN # next $foo is a loop exit
[...]
>"Each" and "every" are the obvious choices, but I wouldn't want to
>follow Ruby exactly: "each" has a definite connotation of
>"separately", "one at a time" that works in "for each $foo"; "every"
>works better for the overall method.
Hang on -- should we be saying "for each $foo" or "for $foo.each"
anyway? We don't say "for @foo.each"; the iteration is implicit. So
I'm thinking it should be "for $foo" or "while next $foo".
(If we could call it "next", which is even more desirable now, seeing as
the main place where "each" made sense was "for each", where it should
be implicit anyway -- "while each $foo" doesn't sound as good, though I
guess it's passable; "print each $foo" sounds like it's looping even
though it isn't. "print following $foo"? "print subsequent $foo"? The
latter could be abbreviated to $foo.seq ....)
Hm, we don't need a fixed name to be able to use the iterator
implicitly, though. Why not
method another is iterator { ... }
using a trait to identify the iterating method(s?). That neatly passes
the buck of what to call it to the individual programmer instead. =)
- David "not sure whether the idea of overloading ++ as
an iterator can be mentioned in polite company" Green