[cl-unification-cvs] CVS cl-unification
mantoniotti
mantoniotti at common-lisp.net
Fri Apr 17 07:52:25 UTC 2009
Update of /project/cl-unification/cvsroot/cl-unification
In directory cl-net:/tmp/cvs-serv19119
Modified Files:
apply-substitution.lisp
Log Message:
Fixed a couple of snags. APPLY-SUBSTITUTION was not applied
recursively and it was barfing on numbers.
Current version is still incomplete, but it serves as a template for
further development.
--- /project/cl-unification/cvsroot/cl-unification/apply-substitution.lisp 2009/04/15 10:05:58 1.3
+++ /project/cl-unification/cvsroot/cl-unification/apply-substitution.lisp 2009/04/17 07:52:25 1.4
@@ -17,6 +17,11 @@
(defgeneric apply-substitution (substitution item &optional exclude-vars))
+(defmethod apply-substitution ((s environment) (n number) &optional exclude-vars)
+ (declare (ignore exclude-vars))
+ n)
+
+
(defmethod apply-substitution ((substitution environment) (s symbol)
&optional (exclude-vars ()))
(declare (type list exclude-vars))
@@ -26,7 +31,7 @@
s
(multiple-value-bind (val foundp)
(find-variable-value s substitution)
- (cond (foundp val)
+ (cond (foundp (apply-substitution substitution val exclude-vars))
(t (warn "~S is a free variable in the current environment."
s)
s))))
More information about the Cl-unification-cvs
mailing list