在Haskell中生成高维列表

在Haskell中生成高维列表,haskell,Haskell,我编写了一个Haskell函数来生成元组列表 defineIndices::Int->Int->[(Int,Int)] 定义索引n m=[(i,j)| i您可以嵌套列表理解,因此您可以创建一个外部列表理解,该外部列表理解将枚举m的值,并且您每次生成一个使用另一个列表理解表达式生成的列表: defineIndices2D :: Int -> Int -> [[(Int,Int)]] defineIndices2D n m = [ [(i,j) | j <- [1..m]] | i

我编写了一个Haskell函数来生成元组列表

defineIndices::Int->Int->[(Int,Int)]

定义索引n m=[(i,j)| i您可以嵌套列表理解,因此您可以创建一个外部列表理解,该外部列表理解将枚举
m
的值,并且您每次生成一个使用另一个列表理解表达式生成的列表:

defineIndices2D :: Int -> Int -> [[(Int,Int)]]
defineIndices2D n m = [ [(i,j) | j <- [1..m]] | i <- [1..n]]
λ> defineIndices2D 2 3
[[(1,1),(1,2),(1,3)],[(2,1),(2,2),(2,3)]]
defineIndices2D :: Int -> Int -> [[(Int,Int)]]
defineIndices2D n m = [ [(i,j) | j <- [1..m]] | i <- [1..n]]
Prelude> defineIndices2D 2 3
[[(1,1),(1,2),(1,3)],[(2,1),(2,2),(2,3)]]