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型に変換しています。