Небольшое ядро из 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 — статические ошибки.