haskell – 需要一种有效的方法将(Seq Data.Text)转换为Data.Text

haskell – 需要一种有效的方法将(Seq Data.Text)转换为Data.Text,第1张

概述我有一个程序(一个使用Text. XML.Expat.SAX的SAX解析器),使用Data.Sequence重复附加Data.Text内容来构建非常大的CDATA节点,如下所示:(|>): existingText |> newTextChunk 这构建了Seq Text类型的大量数据. 在我建立数据之后,我需要转换Seq Text – >文本.但我试过的这个解决方案超级慢: Data.Folda 我有一个程序(一个使用Text. XML.Expat.SAX的SAX解析器),使用Data.Sequence重复附加Data.Text内容来构建非常大的cdaTA节点,如下所示:(|>):

existingText |> newTextChunk

这构建了Seq Text类型的大量数据.

在我建立数据之后,我需要转换Seq Text – >文本.但我试过的这个解决方案超级慢:

Data.Foldable.foldr1 Data.Text.append seqText

有没有更快的方法将文本序列转换为纯文本数据?

问这个问题的另一种方法可能是,将文本列表合并为一个文本的最有效方法是什么,即[文本] – >文本?

解决方法 append将为列表中的每个元素创建一个新数组,并将所有数据复制到该数组中.正如其中一条评论所说,你可能想试试concat.对于序列,您可以尝试:

import Data.Foldable (toList)import Data.Sequence (Seq)import qualifIEd Data.Sequence as Simport Data.Text (Text)import qualifIEd Data.Text as TconcatSeq :: Seq Text -> TextconcatSeq = T.concat . toList

这应该比使用追加折叠更快,但我还没有验证它.您可以尝试使用标准(这是一个了不起的库)来创建一个小测试用例.

总结

以上是内存溢出为你收集整理的haskell – 需要一种有效的方法将(Seq Data.Text)转换为Data.Text全部内容,希望文章能够帮你解决haskell – 需要一种有效的方法将(Seq Data.Text)转换为Data.Text所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1067750.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存