モナドのメリット モナドはHaskellのプログラムにおいて、特に入出力回りで活躍する仕組みです。 関数プログラムの本体から副作用を安全に分離することができ、計算戦略をプログラム全体にばら撒くことをせずに、一箇所にまとめることができます。 モナドの具体例 モナドの具体例1 例えば、二つの関数getLineとputStrLn関数を考えます。 この二つはどちらもIO型で定義される、副作用の存在する 関数です。 そして、この二つの関数を用いて、「getLineで得た行を、putStrLnで出力したい」とします。 通常のコードであれば、次のように書き表すと思います。 import System.IO …
ファイル読み込み ReadModeによるファイル読み込み Haskellにおいてのファイル読み込みはopenFile関数を使用します。 子の関数を使用するためには、System.IOを事前にimportしておく必要があります。 以下のサンプルコードでは、input.txtファイルを読み取り専用で開き、inpStr変数に格納しています。 import System.IO import Data.Char(toUpper) main :: IO () main = do inh <- openFile "input.txt" ReadMode inpStr <- hGetLine inh prin…