私はまだHaskellを探求し始めています。私はこのコードがIO
モナドで「実行」されることを知っています。そのl <- ...
行から次の行に移動すると、IO - bind
が呼び出されます。
Haskellは怠惰なので、l
評価されることはないと考えることができます。しかし、「bind
」は常に前のコマンドを評価します、そうですか?プログラムが「file-not-found」エラーを生成するためです。
main = do
l <- mapM readFile [ "/tmp/notfound" ]
return ()