Ash*_*ore 7 haskell cartesian-product cartesian-coordinates
因此,我正在编写一个函数allCoords,该函数返回宽度w和高度h两者的网格中每个可能坐标的列表,width并且height必须是非负整数才能返回合理的结果。
示例:allCoords 3 2应该返回[(0,0),(0,1),(0,2),(1,0),(1,1),(1,2)]
到目前为止,这就是我所拥有的,但我什至不知道如何开始编写函数
type GridCoord = (Int, Int)
allCoords :: Int -> Int -> [GridCoord]
Run Code Online (Sandbox Code Playgroud)
Pet*_*den 10
你可以使用列表理解来做到这一点。
[ (x,y) | x <- [0..1], y <- [0..2] ]
Run Code Online (Sandbox Code Playgroud)
将在您的示例中提供列表。
然后需要将您的函数定义为:
type GridCoord = (Int, Int)
allCoords :: Int -> Int -> [GridCoord]
allCoords height width = [ (x,y) | x <- [0..width-1], y <- [0..height-1] ]
Run Code Online (Sandbox Code Playgroud)