我正在尝试使用 Haskell d3.js 库将条形图制作为条形图。
\n\n import Control.Monad\n import qualified Data.Text as T\n import D3JS\n\n test :: Int -> IO ()\n test n = T.writeFile "generated.js" $ reify (box "#div1" (300,300) >>= bars n 300 (Data1D [100,20,80,60,120]))\nRun Code Online (Sandbox Code Playgroud)\n\n即使有了这个简单的例子,我仍然有很多问题。
\n\nimport qualified似乎需要命名空间。然后Data.Text.writeFile我们可以写T.writeFileData.Text.writeFile没有出现在hackage的条目中Data.Text,但我确实找到了它与prelude相关的内容。这是一个简单错误的示例T.writeFile:
> import qualified Data.Text.IO as T\n> T.writeFile "helloWorld.txt" "Hello World!"\n\nCouldn\'t match expected type \xe2\x80\x98Text\xe2\x80\x99 with actual type \xe2\x80\x98String\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\n\n希望所有这些类型转换都能得到解决。然后我对如何reify运作有一个很大的疑问。现在...我该如何将字符串更改为文本?
用于Data.Text.pack将 a 转换String为Text:
pack :: String -> Text
Run Code Online (Sandbox Code Playgroud)
此外,文本版本writeFile出现在 中Data.Text.IO,例如:
import qualified Data.Text.IO as T
T.writeFile "helloWorld.txt" (T.pack "Hello World!")
Run Code Online (Sandbox Code Playgroud)
Data.Text将和Data.Text.IO都导入为 就可以了T。