Julian Morrison wrote:
Suppose I have a rule like:
$a : Cheese(name="Stilton")
$b : Cheese(name="Stilton")
First question: is it possible that a == b ? In other words, can both
patterns end up matching the same object in one activation? I have been
assuming this is so, but it isn't covered in the docs so far as I can see.
Yes this is no different from
select * from Cheese a, Cheese b
Second question: why can't I add as a pattern, $a != $b ? The
IDE compiler complains they are undefined. What is the scope of the
bindings defined by $a and $b ?
$a : Cheese(name=="stilton")
$b : Cheese( this != $a, name == "stilton" )
Or you can use an eval:
eval( $a != $b )