入出力の練習(その2)。
import System
main = do args <- getArgs
          mapM_ uniqFile args
uniqFile fileName = do contents <- readFile fileName
                       putStr $ unlines $ uniq $ lines contents
uniq [] = []
uniq (c:cs) = uniq' c cs
  where uniq' str [] = [str]
        uniq' str (c:cs) 
            | str == c = uniq' str cs
            | otherwise = [str] ++ uniq' c cs
結果。
>cat sample.txt Perl Perl Ruby Ruby Ruby Javascript VBA Haskell Haskell >uniq sample.txt Perl Ruby Javascript VBA Haskell