在Haskell中生成网格坐标的元组

时间:2016-04-19 00:59:02

标签: haskell grid-layout

我想编写一个函数,生成一个包含n×n网格坐标的元组列表。

例如:

> genGrid 2
[(0,0),(0,1),(1,0),(1,1)]
> genGrid 3
[(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]

我知道我可以通过以下方式生成对角线:

genDiagonal n = zip [0..] [0..n-1]

我在想有一个相当简单的方法可以做到这一点,也许是我的对角函数的一个变体,但是我的空白。

1 个答案:

答案 0 :(得分:5)

range函数执行此操作:

Data.Ix> range ((0, 0), (2, 3))
[(0,0),(0,1),(0,2),(0,3),(1,0),(1,1),(1,2),(1,3),(2,0),(2,1),(2,2),(2,3)]