在Prolog中给出递归定义:
定义一个谓词prod(L,N),它取一个数字列表L. 并计算列表中数字的乘积N.
我找到了适用于总和的方法:
sum([],0).
sum([X|L],N) :- sum(L,N1),N is N1 + X.
请帮帮我。我已经尝试了很长时间但仍然无法正常工作。
答案 0 :(得分:1)
product(L, N) :- product(L, 1, N).
product([], X, N) :- N is X.
product([H|T], X, N) :- X1 is X*H, product(T, X1, N).
您需要一个临时柜台(X
就是这种情况)。你把总和误认为乘法。