【问题标题】:Iterating over arrays in haskell在haskell中迭代数组
【发布时间】:2009-11-16 17:22:28
【问题描述】:

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

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

顺便说一句,这都是关于普通数组的。

【问题讨论】:

    标签: arrays haskell iteration


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      使用Data.Foldable,您可以使用foldr/foldlArray,就像使用列表一样。

      另一种选择是您可以将Array 转换回带有elems 的列表,然后在列表上方使用foldrfoldl

      【讨论】:

      • 可惜这个数组很大,所以使用elems耗时太长。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-17
        • 2016-08-11
        • 2011-01-15
        • 1970-01-01
        相关资源
        最近更新 更多