Prolog-Ersetzung

Wie kann ich eine Liste durch eine andere Liste ersetzen, die die zu ersetzende Variable enthält? zum Beispiel

rep([x, d, e, z, x, z, p], [x=z, z=x, d=c], R).
R = [z, c, e, x, z, x, p]

x bis z und z ändern sich nach dem Ersetzen nicht.

Bisher habe ich nur den ohne die Liste gemacht

rep([], _, []).
rep(L1, H1=H2, L2) :-
   rep(L1, H1, H2, L2).

rep([],_,_,[]).
rep([H|T], X1, X2, [X2|L]) :-
   H=X1,
   rep(T,X1,X2,L),
   !.
rep([H|T],X1,X2,[H|L]) :-
   rep(T,X1,X2,L).

Antworten auf die Frage(6)

Ihre Antwort auf die Frage