在 Haskell 中将字符串转换为文本

5
使用Haskell d3.js库,我正在尝试制作一个条形图。
 import Control.Monad
 import qualified Data.Text as T
 import D3JS

 test :: Int -> IO ()
 test n = T.writeFile "generated.js" $ reify (box "#div1" (300,300) >>= bars n 300 (Data1D [100,20,80,60,120]))

即使是这个简单的例子,我也有几个问题。
  • import qualified似乎需要命名空间。然后我们可以写T.writeFile而不是Data.Text.writeFile
  • Data.Text.writeFilehackage上关于Data.Text的条目中没有列出,但我在与prelude相关的条目中找到了它。
这是一个简单的T.writeFile错误示例:
> import qualified Data.Text.IO as T
> T.writeFile "helloWorld.txt" "Hello World!"

Couldn't match expected typeText’ with actual typeString

希望所有这些类型转换都能得到解决。然后我有一个关于reify如何工作的大问题。现在...我该如何将字符串更改为文本?
2个回答

3
使用Data.Text.packString转换为Text:
pack :: String -> Text

此外,writeFile 的纯文本版本出现在 Data.Text.IO 中,例如:
import qualified Data.Text.IO as T

T.writeFile "helloWorld.txt" (T.pack "Hello World!")

可以将 Data.TextData.Text.IO 都导入为 T


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接