2016-11-26 79 views

回答

2

Prolog沒有函數評估,所以您將不得不表示函數樹作爲關係

f(In,Out) :- ... define the relationship between In and Out in the body ... 

例如,對於平方:

square(X,Y) :- Y is X*X. 
?- square(12,X). 
X=144 

在Prolog中的 「功能元件」 是純粹指稱:它們是用於構建術語:

f(x) 

上述術語沒有固有含義或可解決性。它只是一個術語,更確切地說是一棵樹

f 
| 
x 
+0

非常感謝。我想我得到了我的答案。 –

2

序言沒有「功能」,它有「謂詞」。即它們描述了術語之間的關係。謂詞只能評估爲「真」或「假」。

但是,謂詞評估爲真或假的方式是通過統一,即prolog試圖從現有知識庫(即源代碼)中找到將使該謂詞爲真的變量的實例。

因此,您可以欺騙形式Pred(In,Out)的prolog謂詞,這樣對於給定的「In」序言,可以將「Out」與使謂詞爲真的正確值統一爲「Out」。