[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