[eeps] EEP XXX: Pattern-test operator

Richard O'Keefe <>
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 mailing list