List Haskell最先进的廉价列表操作?

List Haskell最先进的廉价列表操作?,list,haskell,data-structures,List,Haskell,Data Structures,对于列表(而不是字符串)上的append等廉价操作,我将使用Data.DList。 让我却步的是Hackage上的软件包被标记为“实验性的”,上一次更新是在2009年 在哈斯凯尔,数据列表仍然是实现这一目标的途径吗?最近一次更新似乎是在2009年6月20日星期六23:01:49 UTC。 hackage中很多有用的东西都被标记为实验性的,但我不担心这一点。数据列表似乎很可靠。它不使用易失性语言扩展,代码实际上非常简单 所以,我想答案是:是的,数据列表仍然很好。使用Seq from。它也有O(1)

对于列表(而不是字符串)上的
append
等廉价操作,我将使用Data.DList。 让我却步的是Hackage上的软件包被标记为“实验性的”,上一次更新是在2009年

在哈斯凯尔,数据列表仍然是实现这一目标的途径吗?

最近一次更新似乎是在2009年6月20日星期六23:01:49 UTC。 hackage中很多有用的东西都被标记为实验性的,但我不担心这一点。数据列表似乎很可靠。它不使用易失性语言扩展,代码实际上非常简单


所以,我想答案是:是的,数据列表仍然很好。

使用Seq from。它也有O(1)cons和snoc,但它在base中,使用和测试的次数更多。

您希望O(1)复杂度来自哪些操作?如果您感兴趣的只是append,那么我推荐此函数:
append x y=undefined
,它非常快。)所以我假设你在构建了这个列表之后想做点什么。一旦你告诉我们这是什么,我们可以给你建议。@augustss::)这是关于建立和转换结构化文本列表的。不是纯数据.Text,而是say'Bold“hi there”、'paration“Long boring Text”或'Section“Title”“Content…”的列表。@Lenny222那么,在每个叶中构建一个包含文本项的树,然后每个追加生成一个fork怎么样。这会给你恒定的时间。你可以在O(n)时间内把它线性化,也就是说,每追加一次摊销O(1)。2009:我的错误,不知怎的谷歌把我送到了一个旧版本。我想知道它是否在GHC->7.*升级过程中被咬坏了。@Lenny222:我怀疑它是否被咬坏了。一个差异列表非常简单,包中除了CPP之外似乎没有使用任何GHC扩展。不太可能会出什么差错。