Песочница

Основные формы

Ядро вычислителя состоит из цитирования, ссылки на переменную, `if`, последовательности, `lambda`, применения, присваивания, определения, лексического связывания и фиксированных узлов управления.

Проверьте запуском

LISPEX
((lambda (x) (if #t x 0)) 42)

Наблюдаемый результат

OUTPUT
42

Как рассуждать

  • У if обязательна ветвь else; begin и тела процедур сохраняют порядок слева направо.
  • lambda поддерживает фиксированные и точечные параметры; set! меняет существующую ячейку; define создаёт или обновляет верхнеуровневую ячейку.
  • quote возвращает неизменяемые литеральные данные; вычислитель не обрабатывает их элементы как выражения.

Контракты форм

ФормаАрность / вычислениеРезультат или ошибка
quoteодин datum; элементы не вычисляютсянеизменяемые данные
ifусловие, истинная и ложная ветви; сначала условиепакет выбранной ветви; E320, если условие даёт не одно значение
lambdaпараметры и 1..N форм телазамыкание; E302 при неверной арности
set!имя и правая часть с одним значениемноль значений; E303, если имя не связано
let / letrecсписок связываний и 1..N форм телапоследний пакет; E321 при раннем чтении letrec

Частая ошибка

Удобные поверхностные формы перечислены в справочнике производных форм.

Куда дальше

Держите эту страницу рядом при написании кода. За последовательным объяснением вернитесь к карте синтаксиса или соответствующей главе.

Синтаксис одним взглядом · Путь обучения