0
我做了下面的程序是這樣的:有什麼不妥以下Prolog程序
eval([],_,_).
eval([(U, V)| Tail], X, Y):-
Y + evaluate([Tail], X, Y), Y is U * (X ** V).
返回假的,我不知道爲什麼。我該如何解決它?
所以這eval([(4,3), 4, X)
應該返回256
。 和eval([(4,3),(1,0)], 4, X).
應返回257
。
現在我得到這個錯誤」
ERROR: Undefined procedure: (+)/2
ERROR: In:
ERROR: [9] _5562+eval([...],4,_5572)
ERROR: [8] eval([(4,3),...],4,_5606) at c:/users/parya lotfi/desktop/exe2.pl:2
ERROR: [7] <user>
我並不總是** **返回'FALSE'!像'的eval([],1,0)'成功! – false
您需要給出一個具體的例子,你期望它是真實的 – false
'Y + evaluate([Tail],X,Y)'應該做什麼?在Prolog中,謂詞成功,失敗或者不終止。不要返回像函數這樣的值,這就是爲什麼你會得到這個錯誤。在這個上下文中,'+'沒有定義在Prolog中。 – lurker