所以在过去的几个小时里,我一直在研究打印数独板的问题,我几乎完成了,但我被困在最后一步。所以我所拥有的是一个表示为“列表列表”的数独板(即 board = [[1, 3, 5, 7, 0, 2, 0, 0, 0], [3, 4, 5, .. .], ...]
我已经能够使用以下功能打印出带有格式的行:
line i s_board = intercalate " | " . map unwords . chunksOf 3 $ map show a
where
a = s_board!!i
因此,通过拨打“line 0 board”之类的电话,我会得到“1 3 5 | 7 0 2 | 0 0 0”,这部分是我需要的。接下来我尝试使用“do block”来输出我需要的板,它看起来像这样:
print = do line 0 board
line 1 board
...
这甚至不会编译,当我做这样的事情时:
print = do
line 0 board
line 1 board
适当的列表被打印了多次,这相当令人困惑。我想努力增加额外的格式,例如在每三行之后打印一个字符串,例如“----------”以完成电路板,但我什至无法让其他东西工作对了。对于这些问题提供的任何帮助,我将不胜感激。