Быстрее всего понять Лиспекс можно, изменив программу и увидев, как меняется её значение. Начните в браузере. Устанавливайте локальную среду выполнения только тогда, когда захотите сохранить файл.
Запуск в Песочнице
Откройте Песочницу, замените содержимое редактора этой программой и выберите Запустить.
(define language "Lispex")
(list 'hello language (+ 2 3))Результат
(hello "Lispex" 5)Первая форма даёт строке "Lispex" имя language. Заключительная форма строит
список из цитированного символа, этой строки и результата (+ 2 3). Песочница
печатает значение каждого выражения верхнего уровня, которое даёт одно или
несколько значений. Сам по себе define не создаёт напечатанного значения.
Замените 3 на 8 и запустите ещё раз. Если последний элемент станет 10, вы
завершили браузерную часть урока.
Сохранение локального файла
Сохраните этот же исходный код под именем hello.lspx. Выберите любой из двух
локальных продуктов.
npx lispex hello.lspxИли скачайте Native-бинарник для своей платформы и запустите его.
lispex hello.lspxОбе команды запускают одну и ту же эталонную реализацию на Rust. Пакет npm доставляет её через WebAssembly. Native-бинарник исполняет её напрямую. Инструкции по установке для конкретной платформы и проверке контрольных сумм смотрите в Загрузках.
Для первой программы этого достаточно. Пользователи Native, которым позже понадобится скомпилированный файл, каждый раз получаемый из одного и того же исходного кода одинаковым, могут перейти к запуску проверенного байткода. Начальный курс остаётся ориентированным на исходный код.
Подсветка, значок файла и форматирование
Официальное расширение распознаёт файлы .lspx, подсвечивает синтаксис
Лиспекса, предоставляет значок файла Лиспекса для светлой и тёмной тем, а также
форматирует документ через установленный Native CLI.
Расширение имеет точный идентификатор studiohaze.lispex. После установки
Native-бинарника форматируйте файлы с помощью Format Document или
форматирования при сохранении. Расширение запускает lispex fmt -. Укажите
lispex.format.executable, если бинарник не находится в PATH. Оно не включает
среду выполнения, языковой сервер, автодополнение, всплывающие типы или
диагностику редактора. Форматирование недоступно через npm, публичную сборку
WebAssembly или Песочницу.
Одна диагностика
Теперь удалите закрывающую скобку в первом define.
(define total 10
(+ total 5)Команда завершается неуспешно и сообщает о диагностике reader E100. Главное
здесь этап. Лиспекс не смог закончить чтение одной исходной формы, поэтому ни
одно выражение не выполнилось. Верните ) после 10, прежде чем искать ошибку
времени выполнения.
Лиспекс записывает диагностику в поток стандартных ошибок, а неуспешный запуск возвращает ненулевой статус. Позже страница Ошибки и диагностика разделит ошибки чтения, нормализации, выполнения и ресурсов.
Упражнение
Измените успешную программу так, чтобы она напечатала вот это.
(hello "Lispex" 12)Показать один ответ
Замените последнее выражение на (list 'hello language (* 3 4)). Лиспекс
вычисляет вложенный вызов (* 3 4) до того, как list получит три значения.
Готовы к шагу 2?
Переходите дальше, когда сможете указать имя, строку, вложенный вызов и итоговый список в первой программе. Далее идёт Значения, имена и процедуры.