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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください