summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Guschin <guschin@altlinux.org>2024-05-14 10:57:55 +0400
committerAndrew Guschin <guschin@altlinux.org>2024-05-14 10:57:55 +0400
commit75c3456bd00aab0659816acd4636ecd4257f15b5 (patch)
tree712425d010fea1b582cda5383645f845f81a88e3
parent277b7abc61463f8f1c09f196090d9fff9a4bd08e (diff)
задание 6
-rw-r--r--task6.pro36
1 files changed, 36 insertions, 0 deletions
diff --git a/task6.pro b/task6.pro
new file mode 100644
index 0000000..7d85eb3
--- /dev/null
+++ b/task6.pro
@@ -0,0 +1,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.