[cl-unification-devel] Problems unifying with a list
Marco Antoniotti
marcoxa at cs.nyu.edu
Thu Aug 31 15:42:41 UTC 2006
Hi
this is a consequence of the change that was introduced in the last
round the "inner" template is not evaluated.
Let me see if there is an easy fix for this.
Marco
John Leuner wrote:
> The attached code fails in SBCL with:
>
> Cannot unify a BIT and a SYMBOL: 1
> CL.EXT.DACF.UNIFICATION:MAKE-TEMPLATE.
> [Condition of type CL.EXT.DACF.UNIFICATION::UNIFICATION-FAILURE]
>
> Restarts:
> 0: [ABORT-REQUEST] Abort handling SLIME request.
> 1: [TERMINATE-THREAD] Terminate this thread (#<THREAD
> "repl-thread" {C74F071}>)
>
> Backtrace:
> 0: ((SB-PCL::FAST-METHOD CL.EXT.DACF.UNIFICATION:UNIFY (T T))
> #<unavailable argument> #<unavailable argument> 1
> CL.EXT.DACF.UNIFICATION:MAKE-TEMPLATE (#<EMPTY UNIFY E$
> 1: ((SB-PCL::FAST-METHOD CL.EXT.DACF.UNIFICATION:UNIFY (LIST LIST))
> #<unavailable argument> #<unavailable argument> (1 2 3)
> (CL.EXT.DACF.UNIFICATION:MAKE-TEMPLATE (QU$
> 2: ((SB-PCL::FAST-METHOD CL.EXT.DACF.UNIFICATION:UNIFY
> (STANDARD-OBJECT CL.EXT.DACF.UNIFICATION::STANDARD-OBJECT-TEMPLATE))
> #<unavailable argument> #<unavailable argu$
> 3: (TEST)
>
> John
>
>
>
> ------------------------------------------------------------------------
>
> (defclass test1 () ((a :initarg :a :accessor a)
> (b :initarg :b :accessor b)))
>
> (defun test ()
> (let ((env (unify:unify #T(test1 a #T(list 1 ?x 3 &rest) b "woot")
> (make-instance 'test1 :a '(1 2 3) :b "woot"))))
> (unify:find-variable-value '?x env)))
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> cl-unification-devel site list
> cl-unification-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/cl-unification-devel
More information about the cl-unification-devel
mailing list