[eeps] EEP XXX: Pattern-test operator
Mon Apr 16 02:53:33 CEST 2012
Let's see where we can get if we
(1) Fix the operand order to be compatible with =
(2) Fix the spelling of the operator to be something
that suggests matching and suggests testing (for
me, with the languages I am familiar with, ~
really doesn't do either)
(3) Spell out the semantics, specifically the escape/
propagation of bindings, clearly and explicitly.
Pattern ?= Expression
is a familiar operator (well, it is if you know Eiffel,
where it's called "assignment attempt") which addresses
(1) and (2). I've spent some time on (3), thought I was
getting close, and realised I'd failed. In
p(X) when Y ?= 10 div X orelse Y ?= oops ->
I definitely want Y to be visible in the body. With
p(X) when Y = 10 div X ; Y = oops -> q(Y).
the scope rules would have been very nearly automatic.
More information about the eeps