summaryrefslogtreecommitdiff
path: root/task6.pro
blob: 4d77a89c6fe2a45d14d05e6bfcd70232ecd72bd2 (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
% 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.