%grupo3 %3a uniao([],C,C):- !. uniao(c,[],c). uniao([X|L1],[Y|L2], [X|C]) :- X < Y ,!, uniao(L1, [Y|L2], C). uniao([X|L1],[Y|L2], [X|C]) :- X = Y,!, uniao(L1, L2, C). uniao([X|L1],[Y|L2], [Y|C]) :- X > Y, uniao([X|L1], L2, C). naomembro(_,[]). naomembro(X,[Y|L]):- X\=Y, naomembro(X,L). semDupl([],[]). semDupl([X|L], L1):- naomembro(X,L), !, semDupl(L,L1). % o ! faz com que não volte a percorrer toda a lista caso tente unificar com outra hip semDupl([X|L], [X,L1]):- semDupl(L,L1).