如何在Haskell中计算(.)(.)的类型?我知道它应该是
(.)(.) :: (a -> b -> c) -> a -> (a1 -> b) -> a1 -> c
Run Code Online (Sandbox Code Playgroud)
但如何在没有计算机的情况下计算它
首先,我想描述一个问题(它与Minesweeper非常相似).我们给出了一个n × m的板和一个特殊点列表(x,y,z).每个点都说在场(x,y)周围我们需要准确放置z矿.
你也可以在这里找到更好的问题描述:Prolog:从哪里开始解决扫雷般的问题? (它是在prolog但不关心编程语言)
我们的任务是生成满足任务条件的所有可能的板.例如:设n = 3,m = 3并L = [(2,2,1)]具有特殊的点列表,所以可能的解决方案是:
[[' ', ' ', ' '], [' ', 1, ' '], [' ', ' ', *]]
Run Code Online (Sandbox Code Playgroud)
其中''是空格,'*'是我的.
我想在Haskell中找到一些有用的想法来编写这个问题.我唯一的想法是生成所有可能的设置地雷组合或使用回溯,但我发现很难在haskell中实现.
有什么想法怎么做?