Запустите программу на Лиспексе и измените одно число, чтобы понять, почему
результат меняется с 5 на 10. Начните в браузере без установки.
Запуск в Песочнице
Откройте Песочницу, замените содержимое редактора этой программой и выберите Запустить.
(define language "Lispex")
(list 'hello language (+ 2 3))Результат
(hello "Lispex" 5)define даёт строке "Lispex" имя language. Последнее выражение вызывает
list, чтобы собрать три значения. Это символ hello, строка из language
и сумма 2 и 3. Апостроф перед hello сохраняет это имя как данные.
Песочница показывает значения выражений, записанных на внешнем уровне
программы. Сам define не создаёт значения для отображения.
Замените 3 на 8 и запустите программу снова.
Результат
(hello "Lispex" 10)Последний элемент меняется, потому что (+ 2 8) возвращает 10. Символ
и строка остаются прежними.
Исправление пропущенной скобки
Замените содержимое редактора следующим примером. В первой строке пропущена закрывающая скобка.
(define total 10
(+ total 5)Лиспекс сообщает об ошибке E100. Он не может закончить чтение первого
выражения, поэтому программа не выполняется. Добавьте ) после 10
и запустите снова.
Результат
15Исправленная программа задаёт total равным 10, затем прибавляет 5.
Ошибки чтения, преобразования сокращённого синтаксиса, выполнения и расхода
ресурсов описаны в разделе Ошибки и диагностика.
Упражнение
Вернитесь к первой программе и измените её, чтобы получить такой результат.
(hello "Lispex" 12)Показать один ответ
Замените последнее выражение на (list 'hello language (* 3 4)). Лиспекс
вычислит вложенный вызов (* 3 4), прежде чем передать три значения в list.
Переход к шагу 2
Если вы можете объяснить имя, строку, вложенный вызов и итоговый список, переходите к уроку Значения, имена и процедуры. Следующие разделы посвящены локальным файлам и настройке редактора.
Сохранение и запуск локального файла
Сохраните исходную программу с (+ 2 3) в файл hello.lspx.
Если Node.js установлен, запустите её через пакет npm.
npx lispex hello.lspxИли установите Native для своей платформы со страницы Загрузки и запустите тот же файл.
lispex hello.lspxОбе команды печатают следующий результат и завершаются с кодом 0.
(hello "Lispex" 5)Оба продукта используют эталонную реализацию на Rust. npm запускает её через WASM, а Native исполняет напрямую. На странице загрузок описаны установка и проверка контрольных сумм.
Сохраните пример с пропущенной скобкой в unfinished.lspx и выполните
lispex unfinished.lspx через Native. Команда завершится с кодом 1 и запишет следующую
диагностику в стандартный поток ошибок.
E100 unfinished.lspx:1:1 unterminated list (missing `)`)Чтобы позже подготовить скомпилированный файл, откройте Запуск проверенного байткода.
Подсветка синтаксиса и форматирование
Официальное расширение studiohaze.lispex подсвечивает синтаксис .lspx
и добавляет значок файла для светлой и тёмной тем.
Для форматирования нужен отдельно установленный Native CLI. Используйте
Format Document или форматирование при сохранении, чтобы упорядочить
пробелы и переносы строк. Расширение передаёт документ команде lispex fmt -
и использует возвращённый исходник. Укажите lispex.format.executable, если
программа не находится в PATH.
Расширение предоставляет подсветку, значки и форматирование. Для просмотра значений и диагностики запускайте код в Песочнице или CLI. Для форматирования используйте Native.