fare-matcher
[superseded by optima according to optima's CLiki page] Extends CL with ML-like pattern matching in an extensible way.

fare-matcher is written by Fare Rideau. It extends CL with pattern matching much like ML or Erlang, but in a way well integrated with CL, and with the possibility of extending the core matcher with arbitrary primitives.

It also includes a matching-friendly implementation of quasiquote, which makes it possible to match source code in an easy way. To use it, you may need to (eval-when (:compile-toplevel :load-toplevel :execute) (fare-quasiquote::enable-quasiquote)).

It depends on fare-utils.

There is a little documentation at fare-matcher-docs.

fare-matcher source code is at: https://gitlab.common-lisp.net/frideau/fare-matcher

Variants:

  • Matthew Danish has some extensions and clean-ups, packaged with an ASDF system, here. It has since been merged with the upstream version (2005-01-31).
  • Note that a different pattern matcher with a similar syntax is part of the bese tools as used in UCW.

obsolete