Perl6's ^^
Perl6's ^^
Posted Feb 17, 2015 23:43 UTC (Tue) by rgmoore (✭ supporter ✭, #75)In reply to: Perl6's ^^ by niner
Parent article: Scalar typing in the PHP world
I dare say that this whole discussion is kind of moot since this operator will just not be used often enough to confuse anyone and it's there mostly for completeness. Perl 6's designers placed very high value in consistency, so having an xor-like operator that in contrast to the others would not short cut would have been confusing indeed.
I don't buy that argument. If it's something that's rarely used, it's that much more likely to be confusing when somebody actually does use it. That's especially true because it changes behavior from the Perl 5 xor
operator, which never short circuited.
The problem as I see it is that &&
and similar operations are associative when you chain them, so that $a && $b && $c && $d
will always give the same result as ($a && $b) && ($c && $d)
, which gives the same result as (($a && $b) && $c) && $d
. But that's not true of ^^
; $a ^^ $b ^^ $c ^^ $d
is not guaranteed to give the same result as ($a ^^ $b) ^^ ($c ^^ $d)
or (($a ^^ $b) ^^ $c) ^^ $d
. That is not what I expect, especially after seeing xor
in Perl 5.