繁体   English   中英

检查列表总和是否为序言中的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM