match (template object &key substitution errorp error-value) &body forms => results*
matchf (template object &key substitution errorp error-value) &body forms => results*
Arguments and Values:
template---a unification template
errorp---a generalized boolean
forms---an implicit progn
results---the values returned by forms
MATCH sets up a lexical environment to evaluate forms after a unification operation. MATCH unifies a template and an object and then sets up a lexical environment where the variables present in the template are bound lexically. Note that both variable names '?FOO' and 'FOO' are bound for convenience.
The MATCH form returns the values returned by the evaluation of the last of the forms.
If errorp is non-NIL (the default) then the form raises a UNIFICATION-FAILURE, otherwise the result of evaluating error-value, whose default is NIL is returned.
MATCHF works as MATCH but it does not evaluate template; it is useful whenever the template is cons that needs to be used as-is, without resorting to explicit quoting.
Note that UNIFICATION-FAILUREs raising from the evaluation of forms will also be caught and handled by the enclosing MATCH according to errorp settings.