[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