Hi Doug, > (be holds (@A @S) > (or > ((restoreSitArg @A @S @F) (@ -> @F)) > ((not (restoreSitArg @A @S @F)) (isAtom @A) (@ -> @A)) ) ) > > gives me the same results as using the (@ solve (list (-> @F))) > clause. Neither that nor (@ -> @F) seem to unify variables in @F (which > is bound to a clause)
(@ -> @F) just matches locally, without binding variables. What happens if you use (@F -> @F) or (@A -> @A)? This will unify the variable with its Lisp value. Or did I understand right that @F and/or @A contain another Pilog clause? Then: Can't you use (call @A), as I wrote in my last mail? I still don't understand why this test of @A and/or @F for being non-NIL is necessary at all. This looks unusual to me. On the other hand, I'm a really poor Prolog programmer ... Cheers, - Alex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe