【发布时间】:2018-10-16 08:37:12
【问题描述】:
我想验证列表的成员是否是前面数字的总和。
示例:[0,1,3,4,18,19]。这是正确的,因为 0+1+3 = 4
sum_([],0).
sum_([X|XS],R):- suma(XS,R1), R is X + R1.
existsSum(L,[X|C]):-append(A,[X|B],L),
append(A,B,C),
sum_(C,X).
我被困在这里。任何想法?谢谢。
【问题讨论】:
-
您能否添加一个示例,说明您将如何调用
existsSum以及您期望的答案是什么?目前尚不清楚您想如何使用它。另外,suma可能是一个错字。 -
不会 [0] 已经是 0,因此我们永远不会达到 0+1+3=4?
-
创建谓词
partial_sums/2,然后使用maplist(==/3),然后使用member(true)。