Prolog - 声明算术条款

时间:2010-03-04 19:03:01

标签: math prolog clause

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

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

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

1 个答案:

答案 0 :(得分:2)

试试这个:

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

addup(X, X+1).

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

然后X应该是3.如果你想参数化你的addup参数,只需要它:

addup(X, Y, X + Y).

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