Austin Hastings wrote:
Perhaps we could consider the junctive lvalues as a sort of implied ?= operation:

   junction(@list) = value

means
unless junction(@list) == value
{
given junction {
when 'none' { (@list.grep value) = undef; }
when 'any' { for 0 .. random(@list) { @list[random(@list)] =
undef; } }
when 'one' { @list[random(@list)] = undef; }
when 'all' { @list = $(@list) x undef; }
}
}


(which would make for some interesting use cases around 'any', at least
;-)

This is extremely scary. The thought of anybody actually using 'any' in their code is... umm... well, let's just say the Haskell programmer me is curling up in fright and screaming his head off, because the idea is entirely abhorrent to him. Gadget Matthew says it's a substanceless 'wow' feature. Both are also skeptical about 'one', and my psychiatrist is rattling pill bottles.


'none' could be useful, but it would be better to explicitly just say

(@list.grep value) = undef

although I think that might be supposed to be

(@list.grep value) »= undef;

as shouldn't list.grep return a list of matches? Which we assume are aliases to the original elements.

I'm with Damian. TMTOWTDI yes, but there's a line between 'nice to have the alternative' and 'silly'.

Oh, and the example appears to have forgotten that only 'none' should be assigning undef, the rest should be assigning value - shouldn't they? I think they should, otherwise it doesn't make any sense at all. Or perhaps it does, and I need to go to bed.

Ciao.

Reply via email to