On Mon, 2002-04-29 at 15:54, Jonathan Scott Duff wrote:
> On Mon, Apr 29, 2002 at 03:30:40PM -0400, Aaron Sherman wrote:
> > On Mon, 2002-04-29 at 10:41, Jonathan Scott Duff wrote:
> > > On Mon, Apr 29, 2002 at 10:26:26AM -0400, Aaron Sherman wrote:
> > > > I would expect that to be "elsuntil", but as we're dropping "until" from
> > > > the language, it's a moot point.
> > > 
> > > Er, what?!?  Who said we're dropping "until"?  Did I miss something?
> > 
> > Well, if there's no while (replaced by generic "loop", per Apoc4) why
> > would there be an until?
> 
> Larry didn't say "loop" was replacing "while".  He said that the magic
> "do {} while" was going away to be replaced by "loop".  "while" and
> "until" (both as loops and modifiers) will still be around AFAIK.
> 
> > 1. Larry says loops will have "ELSE blocks" inside them.
> 
> Did he say that?  Or was it inferred from NEXT, LAST, etc. by others?

No he didn't. Again, flaky memory on my part. What DAMIAN said was:

    "Larry has been mulling over whether various types of loop should be
    allowed to take C<else> blocks to accomplish this."

So, you can see where my confusion came from. It's not clear if this was
suggesting loop{else{}} or loop{}else{}, but either way, this was the
origin of the discussion.

> > 4. I point out that elsif isn't so bad, and perhaps there should be an
> > array of other "else" options.
> 
> And I say, why have several specific things when you can have 1
> generalized thing that does the same job. (I'm not going to describe it
> beyond that. It's up to Larry+Damian to define the shape of the thing)

Well then, I guess we should dump "elsif" from if too. After all, it
could all be done with nested blocks of if/else....

If we're to keep if the same, and add an else to loops, I think the
syntax should be unified.

You would then see code like:

        unless $fh = $x.open() {
                die "$0: Cannot open $x";
        } elswhile $fh.getline() -> $_ {
                print;
        } else {
                die "$0: There were no lines to read from $x!\n";
        }

Which is as clean and elegant as it gets, IMHO.

> > So, the answer to your question is: yes, I do propose that there should
> > be an elsif, elsloop and elsfor. That's it. Three words, not an
> > expansive list of ever-more-complex words.
> 
> You're just weird. :)

Thanks ;)

> > Now, I agree that "else for" might make more sense, but it's very ugly
> > on the grammar (given that we don't allow free statements like C does).
> 
> Hey, perl 6 is supposed to be optimized for the programmer, not the
> perl parser  ;-)

I agree. This is why I think conditionals and loops should have roughly
the same syntax.

Introducing a major twist in the grammar just so that loops and
conditionals can be different, seems to hurt both camps equally and
benefit none.


Reply via email to