Песочница

Процедуры, арность, применение и apply

Замыкания с фиксированной и точечной арностью используют лексическую область, детерминированное вычисление аргументов и общий диспетчер применения для прямых вызовов и apply.

Кратко

LISPEX
(define (sum first . rest) (apply + first rest))
(sum 1 2 3 4)

Результат

OUTPUT
10

Текущие гарантии

  • Несовпадение арности даёт E302 до начала тела процедуры.
  • Точечный rest-параметр получает новый правильный список оставшихся аргументов.
  • apply принимает явные начальные аргументы и один последний правильный список, сохраняя хвостовую позицию.

Границы

  • Применение непроцедуры даёт E301; неправильный последний список apply — ошибка домена списка.
  • Для выполнения гостевых замыканий не используется host apply.