Ernest,
I suspected as much. However it would seem that, implementation aside, it
_should_ bind variables - (exists (foo ?x)) means: is there at least one x which
satisfies the asserted fact ? and here it is. As a practical matter it means I can
do:
(defrule foo-rule
(exists (foo ?x))
=>
(do something with x that has side-effects that I only want to do once)
)
otherwise I have to do
(defrule foo-rule
(not (done-it))
(exists foo ?x))
=>
( .. ditto ..)
(assert (done-it))
)
friedman_hill ernest j wrote:
> Hi Alan,
>
> Thanks. This is, as you probably guessed, a documentation error. The
> imaginary example was apparently too cute to resist, irregardless of the
> fact that it doesn't work! It can't work because of the not-not
> implementation, as you state.
>
> I think Alan Littleford wrote:
> > Ernest,
> >
> > The 5.1. documents seem to imply (2.8.1.7) that (exists) binds
> > variables:
> >
> > Jess> (defrule exists-demo
> > (exists (honest ?m))
> > =>
> > (printout t ?m " is an honest man!" crlf))
> >
> >
>
>
> ---------------------------------------------------------
> Ernest Friedman-Hill
> Distributed Systems Research Phone: (925) 294-2154
> Sandia National Labs FAX: (925) 294-2234
> Org. 8920, MS 9012 [EMAIL PROTECTED]
> PO Box 969 http://herzberg.ca.sandia.gov
> Livermore, CA 94550
---------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the
list (use your own address!) List problems? Notify [EMAIL PROTECTED]
---------------------------------------------------------------------