% INTRODUCTION country(germany). geolocation(X) :- country(X). bigger(russia, germany). bigger(germany, belgium). bigger(A, B) :- bigger(A, C), bigger(C, B). % LIST EXERCISES firstelement([A|_], A). lastelement([A], A). lastelement([_|A], B) :- lastelement(A, B). secondlast([H,_], H). secondlast([_|A], B) :- secondlast(A, B). second([], []). second([A], [A]). second([A,_|B], [A|Restlist]) :- second(B, Restlist). prepend(A, B, [A|B]). duplicate([], []). duplicate([A], [A,A]). duplicate([H|T], [H,H|T2]) :- duplicate(T, T2). % INSERTION SORT insert(Element, [], [Element]). insert(Element, [Hs|Ts], [Element,Hs|Ts]):- Element =< Hs. insert(Element, [Hs|Ts], [Hs|Tl]) :- Element >= Hs, insert(Element, Ts, Tl). inssort([], []). inssort([H|T], Result) :- inssort(T, X), insert(H, X, Result).