我的问题是:在学习 Prolog 时,我想制作一个 NxN 数独求解器。这个求解器会得到像这样的输入
[[1,2,3,4],[3,4,1,2],[2,3,4,1],[4,1,2,3]]
其中一些可能是变量。求解器必须求解该数独。问题要小得多:
firstElementsOf([],_).
firstElementsOf([[X|_]|Rest2],Y) :-
firstElementsOf(Rest2,Y2),
append([X],[Y2],NotFlat),
flatten(NotFlat,Y).
这应该是检查的开始,如果每一列都有不同的数字。Y
from应该只包含给定行的firstElementsOf
第一个元素。在示例中:
[1,3,2,4]
可悲的是,由于 append,它总是在Y
列表中添加另一个空白空间。它给:
[1,3,2,4,_1320]
问题1:有没有办法摆脱它_1320
?
问题2:这对吗?有没有办法用它来获取 Input 的第二个和第三个元素?