Удаление элемента за заданным - 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).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы