prolog SWI无法识别max predicate

时间:2014-10-25 08:43:43

标签: prolog

当我查询max时,我收到以下错误

?-max(2,3).
ERROR: toplevel: Undefined procedure: max/2 (DWIM could not correct goal)

据我所知,max是一个库定义的谓词,应该按原样运行。 我引用了http://www.swi-prolog.org/pldoc/man?section=arith,我发现查询没有错。同样min(2,3)。也不会工作。

虽然其他功能,如成员,长度工作正常。 可能有什么不对?

1 个答案:

答案 0 :(得分:1)

那些不是谓词,它们是需要如此评估的算术函数。例如,您可以使用is/2

?- A is max(2, 3), B is min(2, 3).
A = 3,
B = 2.

或采用算术表达式的任何其他谓词/运算符:

?- min(2, 3) > max(1, 0).
true.