0

我想找出流口水规则的 LHS(左侧)中两个变量的最小值。例如:

$variable1 : // Some value generation lines
$variable2 : // Some value generation lines
// This doesn't work
$minimumOfVariable1And2 : min($variable1,$variable2)

那么如何找出最小值,是个问题。谢谢。

4

1 回答 1

3

单程:

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,则此规则将匹配两次(一次用于 A1-A2,一次用于 A2-A1)。

于 2013-09-30T07:03:47.020 回答