gpt4 book ai didi

arrays - Haskell 数组(矩阵)元素访问

转载 作者:行者123 更新时间:2023-12-01 08:39:16 25 4
gpt4 key购买 nike

我目前在一个项目中,需要访问 Haskell 中的 Array-Matrix 中的元素。所以,我试着用谷歌搜索它,到处搜索。

函数应该是这样的:

getElementIndex :: Int -> Array (Int,Int) Int -> (Int,Int)

并且它必须返回矩阵中元素的IJ索引。

最佳答案

要在 Haskell 中从 Array 类型中读取元素,请使用 (!) 运算符,如下所示:

Prelude Data.Array> let v = listArray (0,9) [1..10]
Prelude Data.Array> v ! 3
4

所以,现在您需要做的就是遍历索引空间、行和列。我喜欢这种任务的列表推导:

assocs' x y arr = [ ((i,j), arr ! (i,j))
| i <- [0..x-1]
, j <- [0..y-1]
]

这只是 Data.Array.assocs 的一个特殊版本:

assocs :: Ix i => Array i e -> [(i, e)]

它返回索引和元素的惰性列表。所以,调用 assocs,然后取第一个匹配的元素。

关于arrays - Haskell 数组(矩阵)元素访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5941127/

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