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. 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? Larry