在记事本++中的Haskell控制台IO

IVl*_*lad 4 haskell notepad++

我最近开始学习Haskell.我有这个代码

module Main
    where

import IO

main =  do 
            hSetBuffering stdin LineBuffering
            putStrLn "Please enter your name: "
            name <- getLine
            putStrLn ("Hello, " ++ name ++ ", how are you?")
Run Code Online (Sandbox Code Playgroud)

我正在使用GHC编译器和notepad ++编辑器.问题是交互是这样的:

流程开始>>>
弗拉德
请输入你的名字:
你好,弗拉德,你好吗?
<<<流程完成.

如您所见,输出仅在我输入内容后写入.这有点出乎意料,因为我确信程序会首先询问我的名字,然后我会进入它然后它会打招呼.好吧,如果我手动运行exe就会发生这种情况,但是如果我用notepad ++运行它并使用它的控制台包装器就不行了......

如何让notepad ++显示输出,而不是在程序终止之前显示所有输出?这甚至可能吗?

yat*_*975 7

尝试将stdout设置为LineBuffering!另外,在ghci中加载程序而不是运行已编译的版本似乎根本不需要任何缓冲...

顺便说一句,我不知道核电站的控制台 - 感谢你指点我!