这是问题和解决方案的专用版本。 Learning Prolog: solving a crossword scheme
我正在寻找的是使用相同模型的广义求解器。我想我需要动态生成这些变量名称,但我不知道如何。我正在使用swi-prolog。
通过广义求解器,我指的是一个能够解决N×N填字游戏的求解器,N未预定义。
答案 0 :(得分:0)
在Prolog中,有很多有趣的方法可以动态生成变量名称。这是一个非常简单的问题:
?- length(X, 3).
X = [_G945, _G948, _G951].
这是有效的,因为实现了length/2
来遍历列表,但它实际上并没有对列表中的内容建立绑定。您可以执行与任何其他数据结构类似的操作,遍历结构而不检查其中包含的值。一些Prolog书籍将此称为“带洞的数据结构”。