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

Reply via email to