HaloO,

Jon Lang wrote:
Another issue: what happens if conditional code mutates a junction
that it filtered?  For example:

    $x = any (-5 .. 5);
    if $x > 0 { $x++ };

At this point, which of the following does $x equal?

    any(-4 .. 6) # the original junction gets mutated
    any(-5 .. 0, 2 .. 6) # the filtered part of the original junction
gets mutated; the rest is untouched
    any(2 .. 6) # the filtered part of the original junction gets
mutated; the rest is lost

This is an example why the controlled block should not be
auto-threaded. That is the assembly point of the resulting
junction any(0,0,0,0,0,1,1,1,1,1) is before the block. Thus
I'm opting for any(-4..6).


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