以下prolog程序有什么问题

时间:2017-03-06 19:06:03

标签: prolog

我制作了以下程序,即:

eval([],_,_).
eval([(U, V)| Tail], X, Y):- 
    Y + evaluate([Tail], X, Y), Y is U * (X ** V).

它返回false,我不知道为什么。我该如何解决?

因此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>

1 个答案:

答案 0 :(得分:3)

eval([], _,0).
eval([(U,V)|UVs], X, Y0) :-
   eval(UVs, X, Y1),
   Y0 is Y1 + U*X^V.

?- eval([(4,3),(1,0)], 4, X).
X = 257.