fun member _ [] = false | member e (x::xs) = e=x orelse (member e xs); fun uniquify [] = [] | uniquify (x::xs) = if member x xs then uniquify xs else x::(uniquify xs); fun uniquify1 [] = [] | uniquify1 (x::xs) = if member x (uniquify1 xs) then uniquify1 xs else x::(uniquify1 xs); fun uniquify2 [] = [] | uniquify2 (x::xs) = let val result = uniquify2 xs; in if member x result then result else x::result end;