Чтобы считывать элементы из типов Array
в Haskell, вы используете оператор (!)
, например:
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
, а затем возьмите первый соответствующий элемент.