迭代haskell中的数组

时间:2009-11-16 17:22:28

标签: arrays haskell iteration

我的问题是我需要迭代数组并根据每个元素计算一些值。我正在为数组寻找类似折叠的函数,但标准库似乎对数组非常无用。或者我错过了什么?

另一个解决方案可能是将数组“绑定”到列表中。绑定意味着我不想复制该数组。这可能吗?

顺便说一句,这一切都与普通阵列有关。

4 个答案:

答案 0 :(得分:8)

前几天我恰好碰到了这篇文章:Folding Arrays

答案 1 :(得分:8)

看看Data.Foldable。它定义了一个完全符合您要求的类型类。

答案 2 :(得分:2)

使用Data.Foldablefoldr / foldlArray就像您可以列出一样。

另一个选择是,您可以将Array转换回包含elems的列表,然后将foldrfoldl转换回列表。

答案 3 :(得分:1)

您使用的是哪种数组类型?您可以在索引空间上折叠。

或者使用其中一个直接支持折叠的数组库(uvector)。