gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:55:24 26 4
gpt4 key购买 nike

我有一个程序(一个使用 Text.XML.Expat.SAX 的 SAX 解析器),它使用 Data.Text 的重复追加来构建非常大的 CDATA 节点。内容,使用 Data.Sequence.(|>)像这样:

existingText |> newTextChunk

这构建了一个非常大的数据类型 Seq Text .

建立数据后,我需要转换 Seq Text -> Text .但是我尝试的这个解决方案非常慢:
Data.Foldable.foldr1 Data.Text.append seqText

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

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

最佳答案

append将为列表中的每个元素创建一个新数组,并将所有数据复制到其中。正如其中一条评论所说,您可能想尝试 concat .对于序列,您可以尝试执行以下操作:

import Data.Foldable (toList)
import Data.Sequence (Seq)
import qualified Data.Sequence as S
import Data.Text (Text)
import qualified Data.Text as T

concatSeq :: Seq Text -> Text
concatSeq = T.concat . toList

这应该比做 fold 快与 append ,但我没有验证过。您可以尝试使用标准(这是一个了不起的库)来创建一个小型测试用例。

关于haskell - 需要一种有效的方法将 (Seq Data.Text) 转换为 Data.Text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17115397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com