我目前在一个项目中,需要访问Haskell中的数组-矩阵中的元素。所以,我试着搜索它,到处搜索。
游戏应该是这样的
getElementIndex :: Int -> Array (Int,Int) Int -> (Int,Int)必须返回矩阵中元素的I和J索引。
发布于 2011-05-09 19:35:42
要从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,然后获取匹配的第一个元素。
发布于 2011-05-09 19:05:53
怎么样
\x -> map fst . filter ((==x) . snd) . assocs发布于 2011-12-12 02:44:08
排除http://www.haskell.org/haskellwiki/Prelude_extensions#Matrices中的简单矩阵
https://stackoverflow.com/questions/5941127
复制相似问题