Slide 13
Slide 13 text
愚直にdoを使ってみる
import System.Environment
import Data.Maybe
sample = do -- IOͷͨΊͷdo
maybeHoge <- lookup "Hoge" -- maybeHoge IO͕ͱΕͯ Maybe Stringɹͱ͍͏ܕ
ʹͳ͍ͬͯΔ
return $ do -- Maybe ͷͨΊͷdo IOͷdoͷதʹ͔͚ΔΑ͏ʹ return
Λ͚ͭΔ
ɹɹ hoge <- maybeHoge -- hogeMaybe͕ͣΕͯ String
ɹɹ return . putStrLn $ hoge -- hogeͷ༰Λग़ྗɻίϯύΠϧ͕௨ΔΑ͏ʹ returnΛ
͚ͭͯ͋͛Δ
sampleの型は IO (Maybe (IO ()))
Hogeが定義されていたら、標準出力に内容を出力。未定義
だったときのことが考慮されていないため、3重になって
いる
doが二重になってあたりもつらい。