在Haskell中,如何刷每行的Data.Text?

Rum*_*mca 1 text haskell

如何在交互式输入的情况下更改此程序以立即处理每行文本?最好是每个换行符冲洗缓冲区.

main = do
  input <- T.getContents
  mapM_ T.putStrLn $ T.lines input
Run Code Online (Sandbox Code Playgroud)

更新:仍然缺少某些东西.看看(????在换行后,stdout在到达EOFstdin 后打印出来):

> cat Test.hs
import System.IO
import Data.Text as T
import Data.Text.IO as T

main = do
    hSetBuffering stdout LineBuffering
    input <- T.getContents
    mapM_ T.putStrLn $ T.lines input
> runhaskell Test.hs
a
????
a
????
> runhaskell --version
runghc 7.6.3
>
Run Code Online (Sandbox Code Playgroud)

bhe*_*ilr 8

你想用hSetBuffering来自System.IO:

import System.IO

main = do
    hSetBuffering stdout LineBuffering
    input <- T.getContents
    mapM_ T.putStrLn $ T.lines input
Run Code Online (Sandbox Code Playgroud)