我有一个非常奇怪的问题。与在 ghci 中运行相比,以下代码在编译时给出了不同的结果,
main = do
putStr "Please enter your name: "
name <- getLine
putStr ("Hello, " ++ name ++ ", how are you?")
当在 ghci 中运行它时,它会像预期的那样,
Please enter your name: dglmoore
Hello, dglmoore, how are you?
但是,当我将代码编译为可执行文件时,它要求我在生成任何输出之前提供输入,所以我最终得到了这个,
dglmoore
Please enter your name: Hello, dglmoore, how are you?
我以前见过类似的问题,但我似乎无法再次找到它。
我正在使用来自 Haskell 平台版本 2012.2.0.0 的 ghc 版本 7.4.1。
任何人都知道为什么他们会给出不同的结果以及我如何让两个版本都做“正确”的事情?