我必须在Haskell制作一个游戏板,输入2个输入,指示板的高度和宽度。该板必须采用[[Int]]
格式,并且所有空格必须填充整数1
。
例如makeBoard 2 3
,应该返回 - > [[1,1,1],[1,1,1]]
答案 0 :(得分:2)
您可以使用嵌套的replicate :: Int -> a -> [a]
:
makeBoard :: Num a => Int -> Int -> [[a]]
makeBoard h w = replicate h $ replicate w 1
replicate
因此需要Int
和元素a
,并生成包含 n 次元素的列表[a]
。因此,第二个replicate
将返回一个列表,第一个复制将复制该列表h
次。
请注意,replicate n x
实际上相当于:
-- equivalent
replicate n x = take n $ repeat x
或更短:
replicate n = take n . repeat