think about it for a second:
a : Fact()
binds a variable to a Fact. How can you have a variable bound to two facts? With 'or' its allowed, as it can bind to one Fact in the first logic outcome and then to the other fact in the second logic outcome.

Mark
Demichelis Matteo wrote:
I tried, it compiles but the behaviour is not correct
because this LHS:
e : TestFact( field1 !="f1") && TestFact( field1 != "f2")

and this:
e : TestFact( field1 !="f1")

strangely match the same facts.

It seems the problem is the compiler not supporting the binding with a '(' that 
follows.
The same with a "or with binding", the 3.15 example seems not supported.




-----Messaggio originale-----
Da: Christopher G. Stach II [mailto:[EMAIL PROTECTED] Inviato: martedì 2 maggio 2006 17.05
A: user@drools.codehaus.org
Oggetto: Re: [drools-user] and with binding

Demichelis Matteo wrote:
Hello,

following the example 3.15 in JBoss Rules, "or with binding":

pensioner: ( Person(....) or Person(...) )

I wrote this rule using "and with binding":

rule "ClearUnknownDevice"

      when

            e : ( TestFact( field1 !="f1") && TestFact( field1 != "f2")
)

      then

            retract( e );

end

I got 2 compilation error:

unknown:8:6 mismatched token: [EMAIL PROTECTED],133:133='(',<21>,8:6]; 
expecting type
ID

unknown:8:76 Unexpected token ')'

perhaps "and with binding" is not supported yet?

thanks.

matteo,.


Try this:

rule "ClearUnknownDevice"

      when

            e : TestFact( field1 !="f1") && TestFact( field1 != "f2")

      then

            retract( e );

end


Reply via email to