drools ルールの LHS (左側) で 2 つの変数の最小値を見つけたいと考えています。例えば:
$variable1 : // Some value generation lines
$variable2 : // Some value generation lines
// This doesn't work
$minimumOfVariable1And2 : min($variable1,$variable2)
では、最小値をどのように見つけるかが問題です。ありがとう。
drools ルールの LHS (左側) で 2 つの変数の最小値を見つけたいと考えています。例えば:
$variable1 : // Some value generation lines
$variable2 : // Some value generation lines
// This doesn't work
$minimumOfVariable1And2 : min($variable1,$variable2)
では、最小値をどのように見つけるかが問題です。ありがとう。
一方通行:
when
FactA($a : a, ...)
FactB($b : b, ...)
FactC(c < Math.min($a, $b), ...)
then
...
別の方法:
when
FactA($a : a, ...)
FactB($b : b, ...)
then
int c = Math.min($a, $b);
...
ここで興味深いのは、FactA と FactB が同じ型の場合です。
when
Assignment($a : a, ...)
Assignment(a < $a, ...)
// $a this the minimum
then
...
2 つの割り当てに同じ a がある場合、このルールは 2 回 (A1-A2 に対して 1 回、A2-A1 に対して 1 回) 一致するためです。