Ответ в теме: Минимальный и предминимальный элементы и их позиции

      Комментарии к записи Ответ в теме: Минимальный и предминимальный элементы и их позиции отключены
#1835

Вы не правы, мне кажется.
Чисто математически:

  • X — минимальный элемент списка L, если для любого элемента E списка L выполняется E >= X.
    • S — предминимальный элемент списка L, если для любого элемента E списка L выполняется:

    • S < E, если Е - минимальный элемент L
    • E >= X, в противном случае.

В общем, минимальный элемент и предминимальный — это два разных элемента. Если список содержит только один элемент — то в нем нет предминимального по определению.

В коде, который я привел такая проверка выполняется в первой строке:
[A, B|T]

Тут входной список разделяется на A — первый элемент, B — второй элемент и T — остаток списка. Если нет элемента A или B — то правило завершается неудачей.

Проверка того, что в списке содержится всего один элемент на языке Prolog может быть записана так:

p([X], X, X):-!.

Если список состоит из единственного элемента, то предикат вернет значение этого элемента в во втором и третьем аргументе. Вы этого хотите?