Hi,

 

I’m reading through DROOLS manual and can’t understand the difference / explanations regarding predicate expression (Figure 3.17) and return value expression (Figure 3.18). The manual gives two examples of the same thing done two different ways:

 

 

Predicate expression:

 

Person( girlAge : age, sex = "F" )
Person( boyAge : age -> ( girlAge.intValue() == boyAge.intValue() + 2 ), sex = 'M' )

 

 

Return value expression:

 

Person( girlAge : age, sex == "F" )
Person( age == ( new Integer(girlAge.intValue() + 2) ), sex == 'M' )

 

 

 

While the ‘return value’ expression is more or less clear, I can’t understand the semantics of ‘predicate’ (‘->’) operator. Can anyone decode this? What’s the difference between the two? When each of the ways should be used and why?

 

Thanks!

 

Vlad