2011-11-27 98 views

回答

5

謂詞沒有返回值。 你可以做什麼來模擬一個返回值是添加另一種說法:

add_numbers(X,Y):- 
    Return is X+Y. 

將成爲

add_numbers(X,Y,Return):- 
    Return is X+Y. 

,當你調用它,你將使用一個變量:

?- add_numbers(4,3,Result). 
Result = 7. 

請注意,您也可以這樣稱呼它:

?- add_numbers(4,3,7). 
true 

也:

?- add_numbers(4,3,8). 
false 

,但它是不可能做到的通話add_numbers(X,2,7,因爲我們使用的運算。然而,很多謂詞可以用於任何你想要的。例如,prolog有一個內置謂詞append/3。 通常你會使用這樣的:

?-append([1,2],[3,4],X). 
X=[1,2,3,4] 

,但你也可以使用這樣的:

?- append(X,Y,[1,2,3]). 
X = [], 
Y = [1, 2, 3] ; 
X = [1], 
Y = [2, 3] ; 
X = [1, 2], 
Y = [3] ; 
X = [1, 2, 3], 
Y = [] 
+1

我建議你提到*限制*和舉個例子所添加的普遍性:有約束,你可以在所有方向上執行算術,因爲它們是算術表達式上的真實關係。 – mat

相關問題