私の問題は次のとおりです。Prolog を学習しているときに、NxN Sudoku ソルバーを作成したいと考えていました。このソルバーは次のような入力を取得します
[[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
fromfirstElementsOf
には、指定された行の最初の要素のみが含まれている必要があります。例では:
[1,3,2,4]
悲しいことに、append のおかげで、常に別の空のスペースがY
リストに追加されます。それは与えます:
[1,3,2,4,_1320]
Question1: それを取り除く方法はあり_1320
ますか?
質問 2: これも正しいですか? それを使用して入力の 2 番目と 3 番目の要素を取得する方法はありますか?