Песочница

Условия и производные формы

Небольшое ядро из if, последовательности, связывания, lambda, применения, присваивания и quote получает гигиенически нормализованные производные формы.

Кратко

LISPEX
(case 2 ((1) 'one) ((2) 'two) (else 'other))

Результат

OUTPUT
two

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

  • cond, case, and, or, when, unless, let*, именованный let, do и quasiquote сохраняют закреплённый порядок и хвостовые позиции.
  • Сгенерированные временные имена и скрытые intrinsics нельзя захватить или затенить пользовательскими именами.
  • case сравнивает datum через eqv?; ложные пути when и unless дают ноль значений.

Границы

  • Нет define-syntax и пользовательского расширения макросов.
  • Отдельные unquote и unquote-splicing вне quasiquote — статические ошибки.