Сумма элементов в списке в Прологе

list_sum([], 0).
list_sum([Head | Tail], TotalSum) :-
    list_sum(Tail, Sum1),
    Total = Head + Sum1.

Этот код возвращает true. Если я заменю Total = Head + Sum1на Total is Head + Sum1, он вернет значение. Но чем мне его заменить, чтобы получить вот такой результат:

?- list_sum([1,2,0,3], Sum).
Sum = 1+2+0+3 ; % not to return value 6!!!
10
задан 26 March 2012 в 16:14
поделиться