我正在尝试在haskell中获取Data.Array的行,并以元组或列表的形式获取数组的列。
我有这样的事情:
array ((0,0),(2,2)) [((i,j),3*i+j)| i <- [0..2], j <- [0..2]]
我希望得到类似的东西:
(0,1,2)
(3,4,5)
要么:
(0,3,6)
(1,4,7-)
答案 0 :(得分:1)
您需要Data.Array.assocs
功能:
Prelude> import Data.Array
Prelude Data.Array> let arr = array ((0,0),(2,2)) [((i,j),3*i+j)
| i <- [0..2], j <- [0..2]]
Prelude Data.Array> assocs arr
[((0,0),0),((0,1),1),((0,2),2),((1,0),3)
,((1,1),4),((1,2),5),((2,0),6),((2,1),7),((2,2),8)]
答案 1 :(得分:1)
您可以使用列表理解:
[arr ! (i, 0) | i <- [0..2]]
或类似的东西