【发布时间】:2018-04-29 05:55:19
【问题描述】:
在 Prolog 中给出递归定义:
定义一个谓词 prod(L, N),它接受一个数字列表 L 并计算列表中数字的乘积N。
我找到了一种适用于总和的方法:
sum([],0).
sum([X|L],N) :- sum(L,N1),N is N1 + X.
请帮助我。试了很久还是不行。
【问题讨论】:
标签: prolog
在 Prolog 中给出递归定义:
定义一个谓词 prod(L, N),它接受一个数字列表 L 并计算列表中数字的乘积N。
我找到了一种适用于总和的方法:
sum([],0).
sum([X|L],N) :- sum(L,N1),N is N1 + X.
请帮助我。试了很久还是不行。
【问题讨论】:
标签: prolog
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 就是这种情况)。你把和误认为是乘法。
【讨论】: