[cl-unification-cvs] CVS cl-unification
mantoniotti
mantoniotti at common-lisp.net
Mon May 21 12:33:05 UTC 2007
Update of /project/cl-unification/cvsroot/cl-unification
In directory clnet:/tmp/cvs-serv31810
Added Files:
apply-substitution.lisp
Log Message:
See previous message.
--- /project/cl-unification/cvsroot/cl-unification/apply-substitution.lisp 2007/05/21 12:33:05 NONE
+++ /project/cl-unification/cvsroot/cl-unification/apply-substitution.lisp 2007/05/21 12:33:05 1.1
;;; -*- Mode: Lisp -*-
;;; substitutions.lisp
;;; General CL structures unifier.
;;; Substitution definitions.
(in-package "CL.EXT.DACF.UNIFICATION") ; DACF = Data And Control Flow.
;;;---------------------------------------------------------------------------
;;; Substitution application.
(defgeneric apply-substitution (substitution item))
(defmethod apply-substitution ((substitution environment) (s symbol))
(cond ((variable-any-p s) s)
((variablep s)
(multiple-value-bind (val foundp)
(find-variable-value s substitution)
(cond (foundp val)
(t (warn "~S is a free variable in the current environment." s)
s))))
(t s)))
(defmethod apply-substitution ((substitution environment) (l cons))
(cons (apply-substitution substitution (first l))
(apply-substitution substitution (rest l))))
(defmethod apply-substitution ((substitution environment) (l null))
'())
(export '(apply-substitution))
(defun ground-term (term &optional (substitution (make-empty-environment)))
(apply-substitution substitution term))
;;; end of file -- apply-substitutions.lisp --
More information about the Cl-unification-cvs
mailing list