On Tue, Apr 16, 2002 at 06:17:24PM -0700, David Wheeler wrote:
> In Exegesis 4, Damian writes:
> 
> <blockquote>
> It's important to note that writing:
> 
> 
>     for @a; @b -> $x; $y {...}
>     # in parallel, iterate @a one-at-a-time as $x, and @b one-at-a-time as
> $y
> 
> is not the same as writing:
> 
> 
>     for @a, @b -> $x, $y {...}
>     # sequentially iterate @a then @b, two-at-a-time as $x and $y
> </blockquote>
> 
> Now, I love that the for loop can do both of these things, but the subtlety
> of the difference in syntax is likely, IMO, to lead to very difficult-
> to-find bugs. It's very easy to miss that I've used a comma when I meant to
> use a semicolon, and vice versa. And what's the mnemonic again?

Personally I really hate the use of the semicolon here - it's
counter-intuitive to everything you expect from semicolons in the 'C'
stable of languages (and English too) - ie my brain groups the terms in

    for @a; @b -> $x; $y {...}
like
    for [@a]; [@b -> $x]; [$y] {...}
rather than
    for [@a; @b] -> [$x; $y] {...}

Maybe we should have something like
    for @a -> $x; @b -> $y {...}
Instead.
This has the advange of being writeable as the following for clarity:
    for
        @a -> $x;
        @b -> $y
    {
        ....

But hey, what do I know - I'm not a linguist or language designer :-)

-- 
But Pity stayed his hand. "It's a pity I've run out of bullets", he
thought. - "Bored of the Rings"

Reply via email to