参考にした記事: stackoverflow/ putStrLn doesn’t print to console
「すごいHaskell楽しく学ぼう!」を復習していて,入出力で詰まったのでメモ.この本の8.3(英語のWeb版だとこの辺)で,IOを用いた対話型のプログラムが扱われる.
main = do putStrLn "Hello, what's your name?" name <- getLine putStrLn ("Hey " ++ name ++ ", you rock!")
runghc したら一向にHello, what’s your name?と聞かれないので困ってしまった.どうやらバッファリングされてしまってるらしい.上に掲げたstackoverflowの記事で解決策を見つけた.
import System.IO main = do hSetBuffering stdout LineBuffering putStrLn "Hello, what's your name?" name <- getLine putStrLn ("Hey " ++ name ++ ", you rock!")
このように修正しておくとちゃんと名前を聞いてくれる.
とりあえずメモしておく.