Hi Alex,
Thanks for your help!
holds(A,S) :- restoreSitArg(A,S,F), F ;
\+ restoreSitArg(A,S,F), isAtom(A), A.
What I really want is this:
(be holds (@A @S)
(or
((restoreSitArg @A @S @F) @F)
((not (restoreSitArg @A @S @F)) (isAtom @A) @A) ) )
But the above (with a @F or @A for a clause) doesn't work. :-(
This -
(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)
: (solve '((holds (On @N) s0)))
-> (T)
Solves, but it also should tell me @N is bound to 3
Cheers,
Doug
--- On Thu, 6/30/11, Alexander Burger <[email protected]> wrote:
> From: Alexander Burger <[email protected]>
> Subject: Re: pilog: unification in variables that are clauses
> To: [email protected]
> Date: Thursday, June 30, 2011, 12:27 AM
> On Thu, Jun 30, 2011 at 09:20:43AM
> +0200, Alexander Burger wrote:
> > At least, a simple (@ . @A) should work. Doesn't it?
>
> Wait ... probably not a good idea.
>
> But this should work: (@ -> @A)
> --
> UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe
>
--
UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe