[Haskell-cafe] Needing strictness?
Daniel Fischer
daniel.is.fischer at web.de
Wed Oct 21 22:25:51 EDT 2009
Am Donnerstag 22 Oktober 2009 04:15:56 schrieb michael rice:
> Busy night. I wanted the question and response to be on the same line (see
> below), so I used putStr instead of putStrLn, but Haskell jumps the gun and
> goes to the second line to get the response before the question ever gets
> printed. Is this an example of needing strictness? How would I do that, or
> something else, to get the result I want?
>
> putStrLn "Some yes/no question (y/n)?"
> ans <- getLine
>
> Michael
It's a buffering issue. For compiled code, stdout is by default set to line buffering
(it's different for interpreted code, at least on linux).
import System.IO
do hSetBuffering stdout NoBuffering
putStr "Question"
ans <- getLine
should do what you want.
More information about the Haskell-Cafe
mailing list