功能如Num a => a - >无字符串转换的文本

时间:2014-08-02 20:44:14

标签: haskell text

我听说show and read的使用是该计划的瓶颈。是否存在这样的函数,它不涉及字符串转换:

thow :: Num a => a -> Text
thow = undefined

一个明显的实现就像这个pack . show,但不幸的是,它涉及字符串转换。有没有最佳方法来实现这一目标?

2 个答案:

答案 0 :(得分:8)

查看text包的文档,您可能希望使用Data.Text.Lazy.Builder.Int中的函数,例如:

thow :: Integral a => a -> Text
thow = toLazyText . decimal

如果您查看该模块的代码,您会看到它有RULESSPECIALIZE个pragma来优化它,如果a是常见的整数类型之一。< / p>

答案 1 :(得分:3)

double-conversion包针对FloatDouble执行此操作,并且经过高度优化。我怀疑你能否将它的性能与多态函数相匹配(尽管你总是可以专注于一个RULE)。