Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Haskell中生成网格坐标元组_Haskell_Grid Layout - Fatal编程技术网

在Haskell中生成网格坐标元组

在Haskell中生成网格坐标元组,haskell,grid-layout,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] 我想有一个相当简单的方法可以做到这一点,也许是我对角线函数的一个变体,但我还是一片空白 该函数执行以下操

我想编写一个函数,生成包含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]
我想有一个相当简单的方法可以做到这一点,也许是我对角线函数的一个变体,但我还是一片空白

该函数执行以下操作:

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)]
该函数执行以下操作:

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)]

[(x,y)| x还可以查看哪个生成了准确的所需输出(尽管这是一个不同的问题)。
grid d n=sequence$replicate d[0..n]
将生成一个大小为
n
d
维度网格。可以对其进行部分计算,以得到一个二维网格
2dGrid=grid 2
。这几乎是的一个副本,它提供了一系列备选解决方案。我最喜欢的是
(,)[0..x][0..x]
[(x,y)| x还可以查看哪个生成准确的所需输出(尽管这是一个不同的问题)。
grid d n=sequence$replicate d[0..n]
将生成一个大小为
n
d
维度网格。可以对其进行部分计算,以得到一个二维网格
2dGrid=grid 2
。这几乎是的一个副本,它提供了一系列备选解决方案。我最喜欢的是
(,)[0..x][0..x]