我在 Haskell 中寻找一种同时支持快速索引和快速追加的数据结构。这是针对递归引起的记忆问题。
从向量在 c++ 中的工作方式(它是可变的,但在这种情况下这不重要)看来,具有(摊销)O(1) 附加和 O(1) 索引的不可变向量应该是可能的(好吧,它不是,请参阅对此问题的评论)。这在 Haskell 中是否可行,还是我应该使用具有(AFAICT 无论如何)O(1) 附加和 O(log(min(i,ni))) 索引的 Data.Sequence?
在相关的说明中,作为一名 Haskell 新手,我发现自己渴望一份实用、简洁的 Haskell 数据结构指南。理想情况下,这将对最实用的数据结构以及性能特征和指向实现它们的 Haskell 库的指针提供相当全面的概述。似乎那里有很多信息,但我发现它有点分散。我要求太多了吗?