m2ym / optima

Optimized Pattern Matching Library for Common Lisp
271 stars 19 forks source link

Do not bind * #64

Closed m2ym closed 11 years ago

m2ym commented 12 years ago

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

fare commented 11 years ago

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 11 years ago

0666333b2aa9738165c4997e241235fa628ec2d1 WHEN/UNLESS pattern removed