/*
DOMAIN
mas = integer*

PREDICATES
sum(mas)
calc(mas, integer)

ClAUSES
*/

%% sum - предикат который ситает сумму элементов массива,
%% а потом выводит эту сумму на экран

sum(L) :- calc(L,S), write('Sum = '), write(S), nl.

%% calc(Массив, Результат) :-
%%   посчитать сумму для всего массива кроме первого элемента и записать в Si,
%%   Результат = Первый эелемент массива + Si

calc([A|L], S) :- calc(L, Si), S is Si+A. %% is в swi-prolog равен '=' в turbo prolog

%% calc(Ничего, 0) :- !. т.е. сумма эелемнтов пустого массива равна нулю, конец!

calc([], 0) :- !.
