» » »

Описать предикат, который по списку чисел определяет список всевозможных различных сумм его подпоследовательностей.

вроде работает...
% Bilet6
% Patched by JamshyT 14.01.13
% Special for AISTd-31 :)
% To start type: jstart.
podposl([],[]).
podposl([X|L1],[X|L2]):-podposl(L1,L2).
podposl(L1,[Y|L2]):-podposl(L1,L2).

sum(0,[]).
sum(S,[Y|L]):-sum(S1,L), S is S1+Y.

predikat(X,Y,Z):-podposl(Y,X),sum(Z,Y).
jstart:- write(' Vvedite spisok L1: '),nl,read(LJAM1),nl,
write(' Vivod spiska L= '),
write(LJAM1),nl,
predikat(LJAM1,Y,Z),
write(Y),nl,
write(Z).

Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.