2017-04-11 47 views
0

我對Prolog相當陌生,目前我正在努力將整數作爲一個規則的參數傳遞給SWI-Prolog中的另一個規則。例如:在Prolog規則中傳遞整數

left(B) :- B is B - 1. 

...

cond2(X) :- X = left(4). 

任何幫助,將不勝感激。

+5

您正在說明對Prolog至少三個基本的誤解。 (1)'B是B - 1'將總是失敗,因爲在Prolog中,這就是說你有一個值,'B'與'B - 1'值相同,當然這是不可能的(2)在Prolog中,謂詞不返回值。他們要麼成功,要麼失敗。所以'X = left(4)'不叫'left'。(3)'=/2'不是賦值操作符。這是一個統一的運營商。 – lurker

回答

0

你可以嘗試以下方法:

left(A,B) :- B is A - 1. 

...

cond2(X) :- left(4,X). 

然後cond2(X)應該返回X = 3