gpt4 book ai didi

arrays - Haskell repa --- 使用索引进行映射

转载 作者:行者123 更新时间:2023-12-02 08:54:59 25 4
gpt4 key购买 nike

假设我想将一个函数映射到一个数组上,但该函数的类型不仅仅是 a -> ba -> 整数 -> b即该函数还需要一个索引。我该怎么做?

最佳答案

简短回答,使用遍历

更长的例子:

import qualified Data.Array.Repa as A
import qualified Data.Vector.Unboxed as U

arr1 :: A.Array A.DIM2 Double
arr1 = A.fromVector (A.Z A.:. 2 A.:. 3) $ U.fromList [1::Double,2,3,4,5,6]

arr2 :: A.Array A.DIM2 Double
arr2 = A.traverse arr1 id (\lf i@(A.Z A.:. r A.:. c) ->
(lf i) + (fromIntegral r) + (fromIntegral c))

arr1 是一个 2x3 矩阵。 traverse 是一个函数,它接受 (1) 原始数组、(2) 将源索引映射到目标索引的函数,以及 (3) 一个函数,该函数被赋予 (i) 一个查找函数到原始数组和 (ii) 返回新值的索引。

因此,这里 arr2 通过添加该特定条目的行索引和列索引来修改每个原始元素。

关于arrays - Haskell repa --- 使用索引进行映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6242442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com