From 036fc642ba28bbd2dd50d5d9297e7b901e8ac94a Mon Sep 17 00:00:00 2001 From: Max Hohlfeld Date: Fri, 14 Apr 2023 12:57:55 +0200 Subject: [PATCH] prolog day 2 --- prolog/day2.pl | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 prolog/day2.pl diff --git a/prolog/day2.pl b/prolog/day2.pl new file mode 100644 index 0000000..1790b2a --- /dev/null +++ b/prolog/day2.pl @@ -0,0 +1,35 @@ +/**/ +fib(0, [0]). +fib(1, [1,0]). +fib(N, [R, X, Y | Zs]) :- + N > 1, + N1 is N - 1, + fib(N1, [X, Y | Zs]), + R is X + Y. + +% wrong naive impl +reverse([], []). +reverse([x], [x]). +reverse([Head|Tail], [RNew, Head]) :- + reverse(Tail, RNew). + +accrev([H|T], Acc, R) :- + accrev(T, [H|Acc], R). +accrev([], R, R). + +rev(L, R) :- accrev(L, [], R). + +smol([S], S). +smol([H|T], S) :- + smol(T, Snew), + Snew < H -> S is Snew; S is H. + +% not working +accsortt([], Acc, Acc). +accsortt([H1 | T], Acc, R) :- + H2 | T, + H1 < H2 + -> accsortt(T, [H1, H2 | Acc], R); + accsortt(T, [H2, H1 | Acc], R). + +sortt(L, R) :- accsortt(L, [], R).