Matchable is a drop-in compatible replacement for Chicken's MATCH macro. All forms are provided under the same name, and all features except the ..k pattern are supported.
In addition, matchable supports non-linear patterns, i.e. patterns where an identifier occurs multiple times, requiring all instances of the identifier to be EQUAL?. For example:
(x _ x)
matches all lists of three elements whose first and third elements are the same.
For full documentation, see Pattern matching. However, the match-error-control and match-error-procedure procedures have no impact. A failure to match always signals an error.
- fixing bug where (a ...) matched non-lists
- allowing `...' with any backend, removing redundant check in vector patterns
- uses srfi-46, if available (as it is in alexpander)
- fixing quasiquote patterns
- allowing ellipse patterns in other than the final position of a list
- added syntax-error macro & specialized for Chicken [Kon Lovett]
- updated to change in syntactic-closures 0.91
- bugfix, now all tests pass with syntactic-closures
- works now with syntactic-closures
- initial release