プロローグ プログラムでリストのリストを作成する際に問題が発生しています。行の単一のケースを返す述語があります。この行のすべてのケースをグループ化し、リストのリストに変換する必要があります。それらに問題なくアクセスできますが、終了すると最初の要素しか取得できません。
コードは次のとおりです。
sudoku3to2 :- s3to2(1).
s3to2(Line) :-
Line < 9,
Line1 is Line+1,
s3getLine(Line,0,[L]),
assert(sudoku2(Y,L])),
s3to2(Line1).
s3to2(9).
s3getLine(Line,X, , ) :-
X < 9,
X1 is X + 1,
sudoku3(Line,X, ),
s3getLine(Line,X1, , ).
s3getLine(Line,9,L,L).
sudoku3/3 は X,Y 座標の要素を返します。s3getLine(Line,9,L,L) に到達したら、戻り始めます。最初の要素だけでなく、集めたすべての要素を保持したいと考えています。そして、適切な述語呼び出しを構築するのに本当に苦労しています。