variablize/3
リストを取り、各項目を変数に置き換える述語があります。例:
% ?- 変数化([a,b,c], X, L)。 % L = [[X, b, c], [a, X, c], [a, b, X]]
今、変数のリストを受け入れるようにこの述語を拡張しようとしています。例:
% ?- 変数化([a,b,c], [X,Y], L)。 % L = [[X, Y, c], [X, b, Y], [a, X, Y]]
これまでの私のコードは次のとおりです。
replace_at([_|テール], X, 1, [X|テール]). replace_at([Head|Tail], X, N, [Head|R]) :- M は N - 1、replace_at(Tail, X, M, R) です。 replace_each([], _, _, [], _)。 replace_each([_|Next], Orig, X, [Res|L], N) :- replace_at(Orig、X、N、Res)、 M は N + 1、 replace_each(次、Orig、X、L、M)。 variablize(I, X, L) :- replace_each(I, I, X, L, 1).
ポインタはありますか?スキップするインデックスのリストを拡張replace_at/4
する必要がありますか?