pattern matching
Libraries adding data-structure pattern matching operations to Common Lisp.
- arnesi - arnesi is a collection of utilities written by Marco Baringer
- bind - Bind combines let*, destructuring-bind and multiple-value-bind into a single form
- bpm2 - bpm2 is a pattern matching language originally designed for doing code transformation [ie, writing compilers] it's being pulled off the dusty shelf to take on a second life [we hope!] as a utility for validating data objects floating around inside a web application [such as the stuff coming in and out of cl-json and the stuff given to djula templates]
- cl-match - extended ML-style pattern matching library
- cl-pattern - cl-pattern is a very fast ML-like pattern matching library for Common Lisp
- cl-unification - CL-Unification is a full blown unification library, supporting unification over any Common Lisp objects (and not just lists and atoms)
- cl-xmlspam - XML Stream PAttern Matcher - concise, regexp-like pattern matching on streaming XML
- fare-matcher - fare-matcher extends CL with ML-like pattern matching in an extensible way
- let-plus - LET+ extends let* with destructuring forms for lists and vectors, slot access for structures and classes, convenient forms for short functions, property list and hash table elements, and various other constructs, with a consistent interface that supports editor hints via placeholder macros
- MCPat - MCPat is a meta-circular pattern matching library
- pcond - PCOND is a conditional macro that does pattern matching, supporting Lisp predicates, regular expressions, and unification expressions
- Screamer - Screamer is a language extension that adds support for nondeterministic programming, including backtracking and undoable side-effects, and includes a constraint programming language
- SPath - SPath is a library for running search queries against s-expressions, intended to match parts of them that the user needs
- Toadstool - Toadstool is a library for pattern matching
See also:
- Screamer
- EEL
- destructuring-bind can be used to bind variables to components of a tree, but does not provide for multiple alternative patterns.
- typecase can be used to test structures against a pattern (type), but does not destructure.
Pages in this topic: arnesi bind bpm2 cl-match cl-pattern cl-unification cl-xmlspam fare-matcher let-plus MCPat pcond Screamer SPath Toadstool
Also linked from: language extension
CLiki pages can be edited by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively