3 ms·
What exactly do you mean by pattern matching? I understand it in the ML sense. The Lisp language I use, PLT Scheme, has extensible pattern matching: http://docs
by noelwelsh 17y ago
What exactly do you mean by pattern matching? I understand it in the ML sense. The Lisp language I use, PLT Scheme, has extensible pattern matching: http://docs.plt-scheme.org/reference/match.html http://docs.plt-scheme.org/reference/match.html The implementation isn't simple but the techniques are published (see "Pattern matching for Scheme" http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.53.2004 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.53.2...) so any Lisp language could implement this. Clojure has less powerful pattern matching, but it does the most common stuff.
The linked article is really about Common Lisp, where the issue is a standard that hasn't been updated in a long time. This doesn't stop individual implementations from making their own advances but in my limited knowledge of the CL implementations this doesn't seem to be occurring.
- lispm 17y agoyou might check sometimes the documentation of CL implementations for the advances that they provide over the standard
- aerique 17y agoThis is actually occurring. Most advances are made in cross-platform libraries (networking, regexps, threading, pattern matching, lazy evaluation, etc.) but some implementations have their own extra that make them interesting (by no means an exhaustive list): ABCL (http://common-lisp.net/project/armedbear/ http://common-lisp.net/project/armedbear/) runs on the JVM. CCL (http://www.clozure.com/clozurecl.html http://www.clozure.com/clozurecl.html) has excellent integration with Objective-C and Cocoa on OS X. ECL (http://ecls.sourceforge.net/ http://ecls.sourceforge.net/) is easily embeddable in C / C++. The commercial offerings Allegro CL (http://www.franz.com/products/allegrocl/ http://www.franz.com/products/allegrocl/) and LispWorks (http://www.lispworks.com/ http://www.lispworks.com/) keep on improving and extending their own implementations in interesting ways.
- programnature 17y agoGood question. Here is what I mean: 1. Pattern matching as the basis for function definition, to determine which code executes and expedite argument destructuring. 2. Patterns themselves should have first-class representation (preferably symbolic), so you can generate them in one place and use them in another. 3. Implicit in this is that the structure of the language is systematic enough to make this worthwhile, meaning something s-expression based, or perhaps something like Scala that achieves similar ends in a much different way.
- deleted 17y ago[deleted]
- hga 17y agoHow close does Qi (http://en.wikipedia.org/wiki/Qi_%28programming_language%29 http://en.wikipedia.org/wiki/Qi_%28programming_language%29) come to what you desire?