Лиспекс создан как Лисп для решений, которые должно быть легко перечитать. Правило записано обычным текстом. Одинаковые исходный код и ввод дают одинаковый наблюдаемый ответ, а результат может сохранять форму данных, вместо того чтобы исчезать внутри приложения.
Сначала посмотрите на форму
Программа на Лиспексе строится из значений и форм в скобках. В вычисляемой форме первое имя указывает, что делать, а остальные выражения передают входные данные.
(+ 2 3)Результат
5Вложенные формы читаются изнутри наружу. Ниже define даёт значению имя, >=
отвечает на вопрос, а if выбирает одно из двух значений данных.
(define total 62)
(if (>= total 50)
'(decision free-shipping)
'(decision standard-shipping))Результат
(decision free-shipping)Апостроф перед '(decision free-shipping) означает «сохранить этот список как
данные». Без него Лиспекс попытался бы вызвать процедуру decision. Это
ключевое различие, возможность формы исполняться или сохраняться в виде
данных, относится к полезным идеям, которые вы будете осваивать постепенно.
Для каких задач подходит Лиспекс
Лиспекс подходит для правил вроде проверок прав, сроков возврата, ценовых границ, выбора маршрута и повторяемых преобразований. Его эталонная среда опирается на детерминированные правила вычисления, точную арифметику там, где она возможна, и устойчивую диагностику. Такие свойства делают правило более удобным для повторного запуска и сравнения.
Лиспекс создан специально для детерминированной логики решений. Он вычисляет изолированные правила без скрытых сетевых вызовов, часов, случайных значений или импорта пакетов. Ваше приложение передаёт ввод и самостоятельно определяет действия на основе полученного результата.
Выберите вход
| Если вы хотите… | Откройте |
|---|---|
| выучить язык за шесть шагов | Путь обучения |
| запустить код без установки | Песочницу |
| изучать SICP глава за главой, читая, изменяя и запуская код | Lispex · курс SICP |
| увидеть повседневный синтаксис на одной странице | Синтаксис одним взглядом |
| установить локальную среду | Первую программу |
| собрать и запустить проверенный Native-артефакт | Запуск проверенного байткода |
| найти точную форму или процедуру | Справочник синтаксиса или Указатель процедур |
Точные изображения, проверенный байткод Native и Ваучер Лиспекса являются полноценными возможностями продукта, но ни одна из них не требуется для изучения языка. Изображения переносят точный исходный код. Байткод даёт явный локальный маршрут через виртуальную машину. Ваучер Лиспекса проверяет записанное решение позже. Он подтверждает, кто подписал правило, привязывает вашу собственную копию исходного кода и ввода и может потребовать одно точное локальное решение. Сначала освойте язык, тогда эти пути станут понятнее.
Запуск правила, которому вы не доверяете
Стандартный запуск Лиспекса выполняет доверенный исходный код напрямую в памяти.
Эта модель прямого исполнения используется в
инструментах выбора маршрута и при авторской оценке через lispex mcp serve.
Для правил с заданным профилем ресурсов загружаемая программа предоставляет
команду lispex embed. Она вычисляет профиль решений с заданными значениями
топлива и памяти внутри процесса хоста и формирует переносимую запись portable
core после завершения.
Обещание руководства
Документация описывает точные возможности продукта и проверенные границы. Эталонной средой выполнения служит Rust. Топаз выступает сопутствующим языком и компилятором для виртуальной машины Топаз и инструментария AOT, компилирующего правило в отдельную программу. LIL (Лиспекс на Лиспексе) и LIT (Лиспекс на Топазе) работают как бэкенды дифференциальной проверки. Вы можете изучить эти компоненты в разделе Среды и бэкенды, когда потребуется развёртывание или перекрёстная проверка.
Слова, которые документация повторяет
Несколько слов повторяются в руководстве, в инструкциях и в истории выпусков. Для курса ни одно из них не нужно.
| Слово | Что оно значит |
|---|---|
| вычислитель | программа, которая выполняет правило |
| tree | встроенный интерпретатор, который читает ваш исходник напрямую |
| VM | виртуальная машина, то есть программа, которая выполняет подготовленные инструкции вместо чтения исходника |
| AOT | компиляция заранее, которая превращает правило в программу до её запуска |
| канонический | записанный каждый раз одинаково, поэтому один и тот же ввод даёт одни и те же байты |
| профиль ресурсов | точные значения работы и памяти, заданные для запуска |
| meter | счётчик, который измеряет объём работы, потраченный на запуск |
| маршрут | один способ выполнить правило |
| route lock | файл, где выбранный маршрут записан независимо от расположения продукта на машине |
| portable core | запись, которая связывает правило, ввод, лимиты и результат одного запуска |
| квитанция | запись о том, что дал один запуск или одна установка |
| сводная проверка | один прогон проверок, собранный в единый вывод |
| поверхность | место, где доступен Лиспекс, например Native, npm, сборка WebAssembly или Песочница, а поверхность языка означает охваченную его часть |
| Топаз | Отдельный язык и его компилятор. Лиспекс использует его как виртуальную машину Топаза, выполняющую подготовленные инструкции, и как набор инструментов AOT, который заранее компилирует правило в отдельную программу |
| LIL | Интерпретатор Лиспекса, написанный на Лиспексе |
| LIT | Лиспекс, написанный на Топазе |
| WASM | сборка WebAssembly |
Готовы? Откройте Путь обучения или сразу Первую программу, если предпочитаете учиться запуская код.