Martin D Kealey wrote:
Surely it is more important that ($a ne $b) should be equivalent to not( $a
eq $b ) regardless of whether either variable contains a junction?

IIRC, ne is just an abbreviation of !eq where ! in turn as a meta
operator means to pull the negation to the front. Are junctions
overruling that mechanism? I think we should have negation only on
a single boolean not on the operator itself which is strange if used
multiple times. That is, the operator that sees the junction is the
operator the negation was applied to.

IOW, I would expect

   if      $a  ne $b  {...}
   if      $a !eq $b  {...}
   if    !($a  eq $b) {...}
   unless  $a  eq $b  {...}

to be fully equivalent forms where the negation is moved further to the
top of the parse tree from step to step.

This raises the question how the negation meta operator relates to
other meta operators e.g. does ([!==] $a,$b,$c) mean !([==] $a,$b,$c).
I have no idea how difficult such negation propagation in parse trees

Regards, TSa.

"The unavoidable price of reliability is simplicity" -- C.A.R. Hoare
"Simplicity does not precede complexity, but follows it." -- A.J. Perlis
1 + 2 + 3 + 4 + ... = -1/12  -- Srinivasa Ramanujan

Reply via email to