Prolog中的乘积
在Prolog中给出递归定义: 定义一个谓词prodL,N,它接受一个数字列表L 并计算列表中数字的乘积N 我已经找到了一种方法,可以实现总额:Prolog中的乘积,prolog,Prolog,在Prolog中给出递归定义: 定义一个谓词prodL,N,它接受一个数字列表L 并计算列表中数字的乘积N 我已经找到了一种方法,可以实现总额: sum([],0). sum([X|L],N) :- sum(L,N1),N is N1 + X. 请帮帮我。我已经尝试了很长一段时间,它仍然不起作用 product(L, N) :- product(L, 1, N). product([], X, N) :- N is X. product([H|T], X, N) :- X1 is X*
sum([],0).
sum([X|L],N) :- sum(L,N1),N is N1 + X.
请帮帮我。我已经尝试了很长一段时间,它仍然不起作用
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。你把求和错当成了乘法。这似乎对我不起作用。它一直说列表的乘积是0。更改了代码,现在它工作了;你必须从1开始计数,而不是从0开始,以使乘法分数不同于0。你找到了方法还是找到了代码?