summaryrefslogtreecommitdiff
path: root/task6.pro
blob: 7d85eb37043847411a610aa990187225a5a5262e (plain)
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.