在Haskell中将字符串转换为文本
使用Haskell d3.js库,我试图将条形图变成条形图在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])) 即使是这个简单
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
)
阅读更多信息