Haskell 中是否有高效的固定大小列表库?我认为 IArray
当只想要由自然数[包括零]索引的数组时,接口(interface)有点复杂。我想写这样的代码
zeroToTwenty :: Int -> FixedList Int
zeroToTwenty 0 = createFixedList 21 []
zeroToTwenty n = zeroToTwenty (n-1) `append` n
我天真的解决方案如下。
编辑 : 抱歉没有上下文;我想要一个可以分配一次的数据结构,以避免过多的垃圾收集。这是在
merge
的上下文中。合并排序的例程,它采用两个排序的子列表并生成一个排序列表。
最佳答案
使用 vector 怎么样?包裹?它提供了非常有效的可增长向量,具有类似列表的界面和 O(1) 索引。
关于arrays - Haskell 中的固定大小列表(即具有类似列表 API 的数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6335472/