2010-03-04 39 views
3

一個簡單的問題,我將如何去聲明一個將生成指定數字+1 +2和+3的子句?我曾嘗試過:Prolog - 聲明算術子句

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

但是當我運行它時說,Thenumber = 5,它只是返回5 + 1 5 + 2 5 + 3。我試圖用'是'來強制它評估,但它似乎並沒有工作。任何幫助,將不勝感激。

回答

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

+1

太好了,謝謝。 – Dororo