アレイのuniqです。
ar = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9]
main = print $ uniq ar
uniq :: [Int] -> [Int]
uniq [] = []
uniq (x:xs) = x : (uniq $ filter (/= x) xs)
先頭から一つ取り出して、取り出したものと同じ数字を外すというやりかたです。
やり方はすぐに思いついて簡単だと思ったのですが、最初に、
uniq :: [a] -> [a]
こう書いてしまったせいでエラーがなかなか取れず、時間はかかってしまいました。