入出力プログラム
Haskell でターミナルから入出力を行うときのプログラムをまとめてみた。文字列の入力
Prelude で複数行のプログラム入力ができるようにするおまじない。Prelude> :set +m
1行を端末から入力するための処理。
Prelude> let Prelude| main = do Prelude| cs <- getLine Prelude| putStrLn cs Prelude| Prelude> main hello, world hello, world
複数行を端末から読み込むための処理。
Prelude> let Prelude| main = do Prelude| cs <- getLine Prelude| if cs == "" Prelude| then return [] Prelude| else Prelude| do Prelude| rest <- main Prelude| return (cs : rest) Prelude| Prelude> main hello, world nice to meet you ["hello, world","nice to meet you"]
数値の入力
複数の数値を読み込むための処理。
Prelude> let Prelude| main = do Prelude| cs <- getLine Prelude| if cs == "" Prelude| then return [] Prelude| else Prelude| do Prelude| rest <- main Prelude| return ((read cs :: Int) : rest) Prelude| Prelude> main 12 34 56 [12,34,56]
コマンドライン引数の入力
端末からコマンドライン引数を読み出す処理。
Prelude> :m System.Environment Prelude System.Environment> let Prelude System.Environment| main = do Prelude System.Environment| args <- getArgs Prelude System.Environment| print args Prelude System.Environment| Prelude System.Environment> :main map (*2) [1..10] ["map","(*2)","[1..10]"]