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