On Thu, Feb 17, 2005 at 02:18:55AM -0600, Rod Adams wrote:
: The simple if is:
: 
: if $x ~~ (1,2,3,4) {...} # parens needed here since , is lower than ~~ 
: in precedence.

That is asking if $x is a list containing 1,2,3,4.

: Same for unless/while/until. And all of this from the entirely useful C< 
: ~~ >. The S04 code describing @Array ~~ $Scalar (for Num/Str) uses 
: junctions, but I'd argue a better implementation would be a short 
: circuiting C< for > loop, even if junctions exist. It's just plain 
: faster that way.

Junctions can short circuit when they feel like it, and might in some
cases do a better job of picking the evaluation order than a human.

: So what I see now for utility of junctions is thus:
: 
: - Common cases which C< ~~ > appears to handle for us suitably well.

Only if we make lists second-class citizens.  The need for junctions
first became evident when we found ourselves filling the ~~ tables
with various sorts of weird non-symmetries.

: - Edge cases which, IMHO, do not merit the huffman level of several 
: single character operators. All of which can be accomplished without the 
: use of junctions, though not as gracefully.

Grace is important.  Even more important is mapping naturally to human
linguistic structures, to the extent that it can be done unambiguously.

: I see no need for junctions in core.

I do, and I'm not likely to change my mind on this one.  Sorry.

Larry

Reply via email to