IOでの対話環境(ghci)とプログラム実行(runghc)の差異
環境によって挙動が異なります。ghciにて小さなコード片を試してから、プログラムを書くことが多いので、このような差異は頭の片隅においておいた方が良さそうです。
プログラム実行(runghc)
バッファされるので、コーディング上先にあるputChar 'a'がgetCharの後に表示される。
[work06]$ cat test04.hs import System.IO main :: IO () main = putChar 'a' >> getChar >>= putChar [ec2-user@ip-172-31-25-234 work06]$ runghc test04.hs 6 a6[work06]$
対話環境(ghci)
バッファはされない。
[work06]$ ghci GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Prelude> putChar 'a' >> getChar >>= putChar a66Prelude>