J'ai écrit quelques Prolog pour remplacer des éléments dans la liste deux avec un atome appelé empty
si elles figurent dans la liste ci:Prolog variable inconnue sur append
replace_build([], _Inv, _Res).
replace_build([A| B], Inv, Res) :-
replace_build2(A, Inv, Res), replace_build(B, Inv, Res).
replace_build2(_BuildItem, [], _NewInv) :- !.
replace_build2(BuildItem, [BuildItem| T], NewInv) :-
replace_build2(BuildItem, T, NewInv1),
append([empty], NewInv1, NewInv).
replace_build2(BuildItem, [H| T], NewInv) :-
replace_build2(BuildItem, T, NewInv1),
append([H], NewInv1, NewInv).
Cependant, quand je le lance, je reçois un variables inhabituelle anonyme (est que la terminologie correcte?) comme dans l'exemple suivant:
?- replace_build([item3], [empty, item5, item1, item3, empty], X).
X = [empty, item5, item1, empty, empty|_G467]
(! en outre, il resatisfies que je ne veux pas, même si je espère pouvoir travailler que sur)
Pourquoi le |_G467
dans la liste qui en résulte?