Итак, у меня есть программа, которая должна заменить каждый экземпляр элемента в списке другим, но ОДИН ПО ОДНОМУ.
* 1003 Е.Г. *
change_element(5,[1,5,9,12,5,6],3,X). should give
X = [1,3,9,12,5,6] and
X = [1,5,9,12,3,6]
Таким образом, он заменяет первые 5 на 3, затем во втором выводе, первые 5 остаются 5, а второй меняется на 3.
Мне удалось реализовать код для изменения первого элемента, но код завершается после этого. Не идет ко второму элементу.
change_element(A,[A|As],B,[B|As]).
change_element(A,[E|As],B,[E|Bs]):-
dif(A, E),
change_element(A,As,B,Bs).
Есть идеи, что мне делать по-другому, чтобы получить желаемый результат?