is和`=`之间的区别?

时间:2020-02-08 20:41:41

标签: prolog

我已经定义了这两个加谓词:

plus1(A, B, C):- C is A + B.
plus2(A, B, C):- C = A + B.

如预期的那样,plus1(4, 5, X)给出结果X = 9

但是plus2(4, 5, X)给出的结果为X = 4+5,这没有错,但我原以为结果为9

那么为什么它不执行任何计算?is=有什么区别?我什么时候应该使用什么?

1 个答案:

答案 0 :(得分:0)

我不想离开这个问题。

正如 Willem Van Onsem 所说,is用于计算数值表达式,而=用于统一。

我还发现this article关于将来有相同问题的读者的统一。