uniq
入出力の練習(その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
