一个简单的问题,我将如何声明一个会产生指定数字 +1 +2 和 +3 的子句?我努力了:

addup(Thenumber,Thenumber+1).
addup(Thenumber,Thenumber+2).
addup(Thenumber,Thenumber+3).

但是当我说 Thenumber=5 运行它时,它只返回 5+1 5+2 5+3。我曾尝试使用"is"来强制它进行评估,但它似乎不起作用。任何帮助,将不胜感激。

最佳答案

试试这个:

addup(X, Y) :- Y is X + 1.

要么
addup(X, X+1).

你的问题应该是 addup(2, X)

那么 X 应该是 3。如果你想参数化你的 addup 参数,就让它:
addup(X, Y, X + Y).

并询问 addup(5, 6, X)。

关于math - Prolog - 声明算术子句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2381962/

10-13 00:12