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

在Haskell中将字符串转换为文本,haskell,d3.js,io,Haskell,D3.js,Io,使用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])) 即使是这个简单

使用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]))
即使是这个简单的例子,我也有很多问题

  • 似乎需要名称空间。然后,我们可以编写
    T.writeFile
  • Data.Text.writeFile
    没有出现在
    Data.Text
    上的条目中,但我确实找到了它与的关系
下面是一个简单的
T.writeFile
错误示例:

> import qualified Data.Text.IO as T
> T.writeFile "helloWorld.txt" "Hello World!"

Couldn't match expected type ‘Text’ with actual type ‘String’

希望所有这些类型的铸造都能得到解决。然后我有一个大问题,关于
如何具体化
工作。现在。。。我如何在此处将字符串更改为文本?

使用
Data.Text.pack
字符串转换为
文本

pack :: String -> Text
另外,
writeFile
的文本版本出现在
Data.Text.IO
中,例如:

import qualified Data.Text.IO as T

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

可以将
数据.Text
数据.Text.IO
作为
T

导入,除了上面提到的转换函数外,您可能还需要使用文件顶部的
{-#LANGUAGE-OverloadedStrings}/code>杂注来启用
OverloadedStrings
扩展名,它允许您编写字符串文字,但会自动将其转换为兼容类型(例如
Text

阅读更多信息