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