prolog day 2
This commit is contained in:
parent
63c2afdf29
commit
036fc642ba
35
prolog/day2.pl
Normal file
35
prolog/day2.pl
Normal file
@ -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).
|
Loading…
Reference in New Issue
Block a user