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

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

Главная Форумы Программирование Помощь с решением задач на Prolog Задачи на списки Удалить третий элемент из списка на Prolog

В этой теме 1 ответ, 2 участника, последнее обновление  Васильев Владимир Сергеевич 2 года/лет, 4 мес. назад.

  • Автор
    Сообщения
  • #1800

    questioner
    Участник

    Подскажите, пожалуйста, как в SWI Prolog удалить третий элемент из списка?
    С удалением первого и последнего разобралась, а с этим небольшие проблемы.

  • #1801

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

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

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

Для ответа в этой теме необходимо авторизоваться.