Ответ в теме: Удалить третий элемент из списка на Prolog

      Комментарии к записи Ответ в теме: Удалить третий элемент из списка на Prolog отключены
#1801

rm3([Head1, Head2, _Head3|Tail], [Head1, Head2|Tail]).

Если третьего элемент нет — правило завершается неудачей.
Исходный список разделяется на 3 первых элемента (Head1, Head2 и _Head3) и хвост (Tail). Формируется новый список, но в него входят только 2 первых элемента и хвост.

Символ подчеркивания перед Head3 стоит т.к. этот элемент не используется в программе (вообще, _Head3 можно заменить на _). SWI Prolog выдает предупреждения если обнаруживает неиспользуемые переменные. Если переменная реально не нужна — то чтобы погасить эти предупреждения перед именем можно поставить подчеркивание.