(* zadatak pod a *) fun broj(nil,x)=0 | broj(h::t,x) = if h=x then 1+broj(t,x) else broj(t,x); fun nova(nil)=nil | nova(h::t) = if (broj(t,h)>0) then nova(t) else [h]@nova(t); fun konacna(l,nil)=nil | konacna(l,h::t)= if (broj(l,h)>2) then [h]@konacna(l,t) else konacna(l,t); fun f1 x = konacna(x,nova(x)); (* zadatak po b *) fun konacna1(l,nil)=nil | konacna1(l,h::t)= if (broj(l,h)=1) then [h]@konacna1(l,t) else konacna1(l,t); fun g x = konacna1(x,nova(x)); fun postoji(nil,x)=false | postoji(h::t,x) = if (x=h) then true else postoji(t,x); fun provjera(nil,l) = nil | provjera(h::t,l)=if(postoji(l,h)) then [h]@provjera(t,l) else provjera(t,l); fun f2(l1,l2) = provjera(g(l1),g(l2));