
Hi !, I have the following program from “Learn You a Haskell” ( http://learnyouahaskell.com/input-and-output#randomness ). When i run this using runhaskell, code works perfectly fine. However, when i compile and run the binary file, code behaves differently. Basically, in the following code, we print a line first and the read the line from stdin. This behavior works perfectly fine when using “runhaskell guess.hs”. But when i say “./guess”, i had to type in a number directly ( i.e. first prompt is skipped ). btw.. i am using mac yosomite command terminal. Any help greatly appreciated.. Thanks a lot in advance.. import System.Random import Control.Monad(when) main = do ranGen <- getStdGen let (rand,_) = randomR (1,10) ranGen :: (Int,StdGen) putStr "Guess a number between 1 and 10 : " numStr <- getLine when(not $ null numStr) $ do let num = read numStr if rand == num then putStrLn "Yuhaa!! you are right baby!" else putStrLn $ "Sorry dude!! it was " ++ show rand newStdGen main