3

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

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

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

4

1 回答 1

2

试试这个:

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) 询问。

于 2010-03-04T19:10:21.103 回答