
Philippa Cowderoy
Myself I'm of the view transformational patterns (as described in http://citeseer.ist.psu.edu/299277.html) are more interesting - I can't help wondering why they were never implemented?
Ah, so I wasn't first in implementing them in my language :-) It includes the following kinds of patterns (x is the value to be matched): when f args... | matches if f x args... is true | where f args... p | matches if p matches f x args... | p1 & p2 | matches if both p1 and p2 match | (p2 may use variables bound by p1) | define {defs} | matches anything, executes definitions, | binds variables they introduce | if cond | matches anything if cond is true | match e p | matches anything if p matches e This seems complex, OTOH it doesn't have guards. Haskell wouldn't need those "args..." because it curries. -- __("< Marcin Kowalczyk \__/ qrczak@knm.org.pl ^^ http://qrnik.knm.org.pl/~qrczak/