関数型プログラミング言語Haskell Part8
■ このスレッドは過去ログ倉庫に格納されています
0031デフォルトの名無しさん
2007/11/02(金) 01:23:24うん。だからsequenceの真価が発揮されるのはリストの内容や要素数が実行時まで決まらないときだ。
なんか人為的な例だけど、
g :: Int -> IO (Maybe (IO ())
という関数があるとする。これは何か動作を実行するんだけど、それは失敗するかもしれなくて、
そのときはNothingを返す。成功した場合は後で後始末をしなきゃいけない。そのために(Just 後始末)を返す。
gを0から9までを引数にして実行して、それが終わったら全部後始末をしたいとしよう。これはsequence_を使って
do
cleanups <- liftM catMaybes $ mapM g [0..9]
sequence_ cleanups
と書ける。
■ このスレッドは過去ログ倉庫に格納されています