1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
% 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:").
разбиение_списка([], [], []).
разбиение_списка([H|T], [H|L1], L2) :- разбиение_списка2(T, L1, L2).
разбиение_списка2([], [], []).
разбиение_списка2([H|T], L1, [H|L2]) :- разбиение_списка(T, L1, L2).
?- разбиение_списка([], L1, L2), write(L1), writeln(L2).
?- разбиение_списка([1, 2, 3, 4, 5, 6, 7, 8], L1, L2), write(L1), writeln(L2).
?- halt.
|