del(E, [E | T], T). del(E, [H | T], [H | T1]) :- del(E, T, T1). perm([ ], [ ]). perm(L, [H | T]) :- del(H, L, L1), perm(L1, T). sorted([ ]). sorted([ _ ]). sorted([X, Y | T]) :- X =< Y, sorted([Y | T]). slowsort(L1, L2) :- perm(L1, L2), sorted(L2). sortwstaw([],[]). sortwstaw([E],[E]). sortwstaw([H|T],L):- sortwstaw(T,T1), insert(H,T1,L). insert(E,[],[E]). insert(E,[H|T],[E,H|T]):- E>=H. insert(E,[H|T],[H|T1]):- E=M. max([H|T],M,[H|T1]):- max(T,M,T1), H=E. podziel([H|T1],E,T1,[H|T2]):- podziel(T,E,T1,T2), H