arrays - Haskell 中的固定大小列表(即具有类似列表 API 的数组)

标签 arrays list haskell

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/

相关文章:

list - 如果列表的元素符合某些条件,则更改列表元素,如果不符合,则使用 Data.Lens 添加新元素

java - Kotlin 与列表末尾的新项目关联

python - 如何检测公共(public)元素列表和至少包含 1 个公共(public)元素的组列表?

C 语言的 Haskell 导出函数

algorithm - 在 Haskell 中合并排序的输入?

javascript - 如何在 JavaScript 中使用 find() 和 findIndex

c++ - 指针数组的动态分配及其替代方案

list - 一个 Haskell 函数,它接受两个字符串并根据第一个字符串过滤第二个字符串

php - 引用 - 这个错误在 PHP 中意味着什么?

c++ - 计算数组中总和存在的对数的算法