
Hello! See this similar mailing list question from 2006: http://www.haskell.org/pipermail/haskell/2006-September/018430.html The short answer is that GHCi buffers differently, so you need to be more explicit about flushing. HTH, Arlen On Thursday, 7 June 2012 at 9:22 PM, Matthew Moppett wrote:
I have a very simple Haskell file (HelloWorld.hs) that reads like this:
main = do putStr "What's your name? " n <- getLine putStrLn $ "Pleased to meet you, " ++ n
When I load it into ghci, I get the following result, as expected:
[1 of 1] Compiling Main ( HelloWorld.hs, interpreted ) Ok, modules loaded: Main. *Main> main What's your name? Matt Pleased to meet you, Matt *Main>
However, when I compile the same file using ghc and run it in a terminal, I get a very different result:
matt@matt-Lenovo-G575:~/Haskell$ ghc HelloWorld.hs [1 of 1] Compiling Main ( HelloWorld.hs, HelloWorld.o ) Linking HelloWorld ... matt@matt-Lenovo-G575:~/Haskell$ ./HelloWorld Matt What's your name? Pleased to meet you, Matt matt@matt-Lenovo-G575:~/Haskell$
-- in other words, the getLine action is being run before the putStr action, for some strange reason.
Is this a bug? Can anyone enlighten me as to what might be going on?
Regards,
Matt. _______________________________________________ Beginners mailing list Beginners@haskell.org (mailto:Beginners@haskell.org) http://www.haskell.org/mailman/listinfo/beginners