m2ym/optima

Do not bind *

Closed this issue · 2 comments

m2ym commented

WHEN derivied pattern implicitly bind * to the value. This introduce dynamic binding, so there is performance issue.

fare commented

And of course it's not a compliant thing to symbol-macrolet *.

That's why for fare-matcher, * was the "match anything and ignore" symbol, much like * in deftype patterns.

You could use "it" instead of * — either as an exported symbol (which might clash with anaphora if you don't import it), or magically in package which is ugly. Or just require explicit binding of symbol, as in fare-matcher.

m2ym commented

0666333 WHEN/UNLESS pattern removed