[英]checking if sum of list is value in prolog
我正在尝试编写一个简单的谓词,该谓词将确定列表中的所有元素是否加起来,但是我不明白为什么我的不起作用。
似乎应该工作,但是当我执行list_sum([1,2,3],X)时,它不返回任何值,或者list_sum([1,2,3],6)也返回null。 有任何想法吗?
list_sum([],0).
list_sum([F], V) :- F=V.
list_sum([F|R], V) :- list_sum(R, V-F).
list_sum([],0).
list_sum([V], V).
list_sum([F,G|R], V) :- S is F + G, list_sum([S|R], V).
必须明确评估算术。 尝试
list_sum([], 0).
list_sum([F|R], V) :- list_sum(R, S), V is S+F.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.