% a) inverte_tudo([],[]). inverte_tudo([[X|R]|L],I) :- inverte_tudo([X|R],XRI), inverte_tudo(L,LI), concatena(LI,[XRI],I). inverte_tudo([X|L],I) :- inverte_tudo(L,LI), concatena(LI,[X],I).
% d) merge([],L,L). merge(L,[],L). merge([X1|R1],[X2|R2],[X1|R]) :- antes(X1,X2), merge(R1,[X2|R2],R). merge(L,[X2|R2],[X2|R]) :- merge(L,R2,R).