% vim:set syntax=prolog: ?- writeln("Задание 2/4:"). nneg([], []). nneg([], _) :- !. nneg([H|T], N) :- H < 0, !, nneg(T, N). nneg([H|T], [H|N]) :- nneg(T, N). ?- nneg([1, -2, 3, 4, -5], L), writeln(L). ?- nl, nl, writeln("Задание 2/7:"). обращение(L1, L2) :- обращение(L1, [], L2). обращение([], Acc, Acc). обращение([H|T], Acc, L) :- обращение(T, [H|Acc], L). ?- обращение([1, -2, 3, 4, -5], L), writeln(L). ?- nl, nl, writeln("Задание 2/9:"). разбиение_списка([], [], []). разбиение_списка([X], [X], []). разбиение_списка([H,H2|T], [H|L1], [H2|L2]) :- разбиение_списка(T, L1, L2). ?- разбиение_списка([], L1, L2), write(L1), writeln(L2). ?- разбиение_списка([1, 2, 3, 4, 5, 6, 7, 8], L1, L2), write(L1), writeln(L2). ?- разбиение_списка([1, 2, 3, 4, 5, 6, 7], L1, L2), write(L1), writeln(L2). ?- halt.