vypis([]). vypis([H|T]):- writeln(H),vypis(T). sum([],0). sum([H|T],S) :- sum(T, X), S is H+X. app(L,[],[L]). app(L,[H|T],[H|X]):- app(L,T,X). reverse([], []). reverse([H|T], X) :- reverse(T,Y), app(H,Y,X). lrev(L1, L2) :- lrev1(L1, [], L2). lrev1([],L, L). lrev1([H|T], A, B) :- lrev1(T, [H|A], B). zip([], [], []). zip([H1|T1],[H2|T2], [[H1,H2]|Out]) :- zip(T1, T2, Out). heads([],[]). heads([[H|_]|TS],[H|X] ) :- heads(TS,X). tails([],[]). tails([[_|T]|TS],[T|X] ) :- tails(TS,X). emptys([]). emptys([ [] | T]) :- emptys(T). transp(E,[]):-emptys(E). transp(M , [H|V]):- heads(M,H),tails(M,T),transp(T,V).