clan(X,[X|_]) :- !. clan(X,[_|Y]) :- clan(X,Y). podskup([],Y). podskup([G|R],Y):-pripada(G,Y),podskup(R,Y). presek([],Y,[]). presek([G|R],Y,[G|Z]):-clan(G,Y),!,presek(R,Y,Z). presek([G|R],Y,Z):-presek(R,Y,Z). unija([],Y,Y). unija([G|R],Y,Z):-clan(G,Y),!,unija(R,Y,Z). unija([G|R],Y,[G|Z]):-unija(R,Y,Z). razlika(L,[],L). razlika([],L,[]). razlika([G|R],L,[G|Z]):-not(clan(G,L)),razlika(R,L,Z). razlika([G|R],L,Z):-razlika(R,L,Z). /* Poziva se sa: -za pripadnost listi: clan(Elem,Lista). -za utvrdjivanje relacije podskup: podskup(Podskup,Nadskup). -za odredjivanje preseka skupova: presek(Skup1,Skup2,Presek). -za odredjivanje unije skupova: unija(Skup1,Skup2,Unija). -za odredjivanje razlike dva skupa: razlika(Skup1,Skup2,Razlika). */