0
我對Prolog相當陌生,目前我正在努力將整數作爲一個規則的參數傳遞給SWI-Prolog中的另一個規則。例如:在Prolog規則中傳遞整數
left(B) :- B is B - 1.
...
cond2(X) :- X = left(4).
任何幫助,將不勝感激。
我對Prolog相當陌生,目前我正在努力將整數作爲一個規則的參數傳遞給SWI-Prolog中的另一個規則。例如:在Prolog規則中傳遞整數
left(B) :- B is B - 1.
...
cond2(X) :- X = left(4).
任何幫助,將不勝感激。
你可以嘗試以下方法:
left(A,B) :- B is A - 1.
...
cond2(X) :- left(4,X).
然後cond2(X)
應該返回X = 3
。
您正在說明對Prolog至少三個基本的誤解。 (1)'B是B - 1'將總是失敗,因爲在Prolog中,這就是說你有一個值,'B'與'B - 1'值相同,當然這是不可能的(2)在Prolog中,謂詞不返回值。他們要麼成功,要麼失敗。所以'X = left(4)'不叫'left'。(3)'=/2'不是賦值操作符。這是一個統一的運營商。 – lurker