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 ...

- Alex
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to