[cl-unification-devel] bugfix
Marco Antoniotti
marcoxa at cs.nyu.edu
Wed Aug 24 20:53:35 UTC 2005
On Aug 24, 2005, at 3:20 PM, norman werner wrote:
>
> Hello
>
> The match macro is (like several other macros as well ) definded as:
>
> (defmacro match ((template object^M
> &key^M
> (substitution (make-empty-environment))^M
> (errorp t)^M
> (error-value nil))^M
> &body forms)^M
> ..)
>
>
> when one tries to write somethind like:
>
> (dolist (template templates)
> (match template form))
Are you actually trying to to
(dolist (template templates)
(match (template <some-object>) form))
?
This is not the intended use to the form, as the TEMPLATE variable will
appear literally in the call to UNIFY.
You will have to use UNIFY directly to achieve what you want.
Maybe a useful macro would be
(with-substitution-variables (v1 v2 ... vN) <substitution> <form>*)
Then you could write
(dolist (template templates)
(with-substitution-variables (v1 v2 ... vN)
(unify template object)
<form>))
Cheers
--
Marco Antoniotti http://bioinformatics.nyu.edu
NYU Courant Bioinformatics Group tel. +1 - 212 - 998 3488
715 Broadway 10th FL fax. +1 - 212 - 998 3484
New York, NY, 10003, U.S.A.
More information about the cl-unification-devel
mailing list