获取haskell中Data.Array的行和列

时间:2013-11-01 03:18:15

标签: haskell ghci

我正在尝试在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-)

2 个答案:

答案 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]]或类似的东西