Haskell-在运行时获取输入

Haskell-在运行时获取输入,haskell,Haskell,我是Haskell的新手,不知道如何在代码执行期间接受用户的输入。假设我键入以下代码: import System.IO main = do putStrLn "Hi, what's your name?" name <- getLine putStrLn ("Hi " ++ name) import System.IO main=do 嗨,你叫什么名字 name这可能是由于系统上的默认缓冲。尝试使用以下方法将缓冲模式显式设置为行缓冲: main=d

我是Haskell的新手,不知道如何在代码执行期间接受用户的输入。假设我键入以下代码:

import System.IO

main = do  
    putStrLn "Hi, what's your name?"  
    name <- getLine  
    putStrLn ("Hi " ++ name)
import System.IO
main=do
嗨,你叫什么名字

name这可能是由于系统上的默认缓冲。尝试使用以下方法将缓冲模式显式设置为行缓冲:

main=do
hSetBuffering标准输出线缓冲
hSetBuffering标准线路缓冲
嗨,你叫什么名字

命名你的代码对我来说非常好。也许你用错了。您如何称呼它?您确定您使用的是与上述代码类似的
putstrn
,而不是
putStr
?这听起来像是缓冲问题。当标准输出连接到终端时,在所有sane实现中,AFAIK行缓冲应该是默认的。如果这样做有效的话,我仍然会在其他地方寻找根本原因。这解决了它,谢谢。还有@user2847643,我会调查的。