Ответ в теме: В списке слов определить следующее и удалить

      Комментарии к записи Ответ в теме: В списке слов определить следующее и удалить отключены
#2274

Не важно из чего состоит список — из слов или чисел, функция поиска элемента, следующего за элементом с заданным значением будет выглядеть одинаково:

get_next_element([], _Element, _NextElement):-!, fail.
get_next_element([_SingleElement], _Element, _NextElement):-!, fail.
get_next_element([Element, NextElement|_Tail], Element, NextElement):-!.
get_next_element([_OtherElement|Tail], Element, NextElement):-
get_next_element(Tail, Element, NextElement).

Чтобы было возможно найти следующее слово, список должен состоять не менее чем из двух элементов — поэтому функция завершается неудачей (!, fail) если это условие нарушается.
Если первым элементом списка является искомое слово, то мы получаем слово следующее за ним и возвращаем результат. На этом вычисление заканчивается, т.е. функция вернет слово, следующее за первым словом «прием» (даже если таких слов в списке могло бы быть несколько).
Во всех остальных случаях первое слово не совпадает с заданным, значит оно не влияет на результат и может быть пропущено. Остальная часть списка должна быть обработана рекурсивно.

Функция get_next_element вернет вам значение, которое по заданию требуется удалить из списка. Для удаления вы можете использовать стандартную функцию deleteSWI Prolog) или при ее отсутствии (например, в Visual Prolog) — взять ее реализацию из статьи про обработку списков.