在prolog中检查列表的总和是否为值

在prolog中检查列表的总和是否为值,prolog,Prolog,我试图编写一个简单的谓词,它将确定列表中的所有元素是否相加为一个和,但我不明白为什么我的谓词不起作用 它似乎应该可以工作,但当我执行list_sum([1,2,3],X)时,它返回no,或者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

我试图编写一个简单的谓词,它将确定列表中的所有元素是否相加为一个和,但我不明白为什么我的谓词不起作用

它似乎应该可以工作,但当我执行list_sum([1,2,3],X)时,它返回no,或者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([F|R], V) :- list_sum(R, S), V is S+F.

算术必须显式计算。试一试

list_sum([], 0).
list_sum([F|R], V) :- list_sum(R, S), V is S+F.