> -----Original Message-----
> From: Larry Wall [mailto:[EMAIL PROTECTED]
>
> On Fri, Apr 02, 2004 at 03:05:30PM +0100, Simon Cozens wrote:
> : [EMAIL PROTECTED] (Austin Hastings) writes:
> : > >      if (specific() ?? detail1() && detail2() :: general()) {...}
> : >
> : > For some value of "correct" I suppose. Using ??:: within an
> : > if/else context makes my skin crawl, stylistically. :-(
> :
> : Ah, then use if!
> :
> :   if (if(specific()) { detail() } else { general() }) {
> :       ...
> :   } else {
> :       ...
> :   }
>
> What's that?  PL/Ruby?
>
> In Perl 6 that would more clearly be written:
>
>     if do { if specific() { detail() } else { general() } } {
>       ...
>     } else {
>       ...
>     }
>
> or, of course,
>
>     if specific() ?? detail() :: general() {
>       ...
>     } else {
>       ...
>     }
>
> Sorry, Perl 6 is just not going to confuse statements and expressions.
> A statement is the artificial equivalent of a sentence, and it's no
> coincidence that every natural language has something like a sentence
> for the purpose of clocking and resynchronizing the discourse.
> I think pinning the large-scale control structures to the discourse
> structure is a really good idea, both for the computer trying to
> decide what error message to spew, and for the person who is going
> to have to try to decipher that error message.   To break that in
> the name of orthogonality ignores the linguistic evidence built up
> over many thousands of years.


Or, as per the original:

  if specific()
  {
    if detail()
    {
      act();
    }
  }
  elsif general()
  {
    act();
  }

> Even an almost purely RPN language like Japanese likes to use
> honorifics and/or a bunch of particles to mark the ends of its
> sentences, yo?

I'm witcha, homie. Word.

However, what I was trying for was not so much "destroy the end product of
thousands of years of linguistic evidence", as more of the kind of
abstractions that have happened before. In this case,

"A :: in a rex is just a form of 'cut', and 'cut' is a valid expression
modifier, so we'll put the same operators (or similar ones) to use outside
the context of rexen."

=Austin

Reply via email to