Dan*_*ton 1 text haskell lazy-io
我想重写该interact函数,但使用Text代替String。是否可以使用Data.Text和/或Data.Text.Lazy完成与相同的行为interact?
例如,当我使用来运行该程序时String:
main = interact (unlines . map f . lines)
where f "hello" = "wassup"
f _ = "wat?"
Run Code Online (Sandbox Code Playgroud)
它等待一行输入,然后打印出一行作为响应,并等待下一行输入。我想编写相同的代码并使其工作Text。
{-# LANGUAGE OverloadedStrings #-}
import Data.Text.Lazy (Text)
import qualified Data.Text.Lazy as T
textInteract :: (Text -> Text) -> IO ()
textInteract = undefined
main = textInteract (T.unlines . map f . T.lines)
where f "hello" = "wassup"
f _ = "wat?"
Run Code Online (Sandbox Code Playgroud)
但是,不只是textInteract此用例的特殊情况。我希望它的行为与interact所有情况相同。