Haskell - 数独的空白单元格

mat*_*d93 3 haskell functional-programming code-formatting

如果已经提出这个问题,我很抱歉......

我在Haskell有一个数独作业,并希望得到一些反馈.

目标是实现一个表示只包含空白单元格的数独的函数,然后将其命名为allBlankSudoku :: Sudokuwhere

data Sudoku = Sudoku [[Maybe Int]]
Run Code Online (Sandbox Code Playgroud)

你应该使用列表推导或map函数来做到这一点,

map :: (a -> b) -> [a] -> [b]
Run Code Online (Sandbox Code Playgroud)

这是我的看法:

allBlankSudoku :: Sudoku

allBlankSudoku = Sudoku (map (replicate 9) (replicate 9 Nothing))
Run Code Online (Sandbox Code Playgroud)

但!这是我的问题:在说明中它说"不要在这里使用复制和粘贴编程!你的定义不需要超过几条短线."

那么,我的代码是否可以复制粘贴?还有另外一种方法吗?注意:这只是3中的第一项任务,所以我认为这不应该是困难的.

Jus*_* L. 5

这里的复制和粘贴编程可能意味着您的教授不希望:

allBlank = Sudoku [[Nothing,Nothing,Nothing ... ]
                  ,[Nothing,Nothing,Nothing ...
                  ...
                  ]
Run Code Online (Sandbox Code Playgroud)

顺便说一下,作为一个小调,我想

allBlank = Sudoku (replicate 9 (replicate 9 Nothing))
Run Code Online (Sandbox Code Playgroud)

对我来说有点容易理解:)

如果您需要使用列表推导,您可以:

[ [ Nothing | x <- [1..9] ] | y <- [1..9] ]
Run Code Online (Sandbox Code Playgroud)