1
所以我对于序言非常陌生,我必须将列表中的所有元素相加。在序言中添加列表的元素
listSum([],0).
listSum([Head|Tail], Sum) :- listSum(Tail,TailSum), Sum is Head + TailSum.
的目标是使该尾递归,我想知道,如果这是一个更好的方式来做到这一点比这
listSum([],0).
listSum(List, Sum) :- listSum(List,Sum,0).
listSum([H|T], Sum, S) :- S1 is S+H, listSum(T, Sum, S1).
listSum([], Sum, S) :- Sum is S.
或者是完全正常的呢?只是想看看是否有任何明显的方法来改进上面我错过的代码。
谢谢。
精彩,感谢您的快速和巨大的答复:) – mvantastic