Удаление элемента за заданным - Prolog
Формулировка задачи:
Здравствуйте. Мне необходимо для одноуровневого списка удалить элемент, стоящий следом за заданным. Пример как удалять заданный элемент я нашел:
Я так полагаю, что бы довести до ума этот код, нужно во-первых во второй строчке поменять delete_all(X, [X|T], W) на delete_all(X, [X|T], [X|W]), во-вторых в этой же строчке нужно передать не хвост, а хвост хвоста и вот тут я не понимаю как это сделать. В общем правильно ли я размышляю? Если да, то как передать хвост хвоста?
Решение задачи: «Удаление элемента за заданным»
textual
Листинг программы
del_by_next_all(_, [], []). del_by_next_all(Elem, [Elem, _ | Tail], [Elem | Rest]) :- !, del_by_next_all(Elem, Tail, Rest). del_by_next_all(Elem, [Head | Tail], [Head | Rest]) :- !, del_by_next_all(Elem, Tail, Rest).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д