id:nobsunさんの簡単移調ツールを読んでみます (2)
昨日の続きです。簡単移調ツール - HaHaHa!(old) - haskellより引用。
29 usage p = p ++ " <from> <to>" 30 31 main :: IO () 32 main = do prog <- getProgName 33 args <- getArgs 34 if length args /= 2 35 then putStrLn $ usage prog 36 else mapM_ putStrLn $ map showmapping 37 $ mappings (read $ args !! 0) (read $ args !! 1)
- 31行目。main関数。この「簡単移調プログラム」では、IO ()を使ったあまり美しくない部分はこのmain関数内に閉じています。他の関数は美しい。
- 35行目。引数が2個ない場合には使い方を出力します。usage関数にはプログラム名を渡しています。
- 36〜37行目。showmappingとかmappingとかうねうねやって、とりあえずmapM_ putStrLnでリストをそれぞれ出力。出力はここにまとまっています。
- 37行目。args !! 0でリストの先頭要素を、args !! 1で2番目の要素を取得しています。headとかtailを組み合わせる必要はありません。
- 37行目。readで入力文字列をNote型に変換しています。