Это предыдущая редакция документации. Актуальное знакомство с языком и уроки доступны на страницах «Введение» и «Путь обучения».
Добро пожаловать в Lispex, Лисп, созданный ради ясности и удовольствия писать код.
Lispex по-новому прочитывает мощь и простоту Лиспа. Он сохраняет ключевую идею «код и есть данные» и убирает механику, которая обычно нарастает вокруг неё. Грамматика регулярна и последовательна, и со временем перестаёт замечаться.
Выполняется Lispex напрямую. Код работает прямо в браузере без установки. Попробуйте в Песочнице.
Один язык, одна грамматика
Lispex отбрасывает специальный синтаксис и держится одного принципа. Всё записывается в скобках (). Арифметика, определения функций, условия и списки данных принимают одну и ту же форму S-выражения.
Единая грамматика означает, что сам код становится данными с видимой структурой. Читать и анализировать код проще, а программы могут порождать другие программы и работать с ними. Старая идея Лиспа, код и есть данные, здесь взята в самом простом виде.
Что такое Lispex?
Имя Lispex сокращает Lisp Expression. Смысл прямой: программы записываются как выражения Лиспа, и эти выражения остаются удобными для чтения как данные.
Значения, вызовы, условия, определения и цитируемые данные имеют одну форму S-выражений.
Грамматика остаётся явной, чтобы структуру исходного кода было легко проверять.
Попробуйте Lispex
Посмотрите, как грамматика работает на полном примере. Код ниже отфильтровывает чётные числа из списка и умножает каждое на 10. Lispex выполняется прямо в браузере, так что пример можно вставить в Песочницу и запустить.
;; Весь код состоит из основных форм и функций стандартной библиотеки.
(define numbers '(1 2 3 4 5 6))
;; Отфильтровать чётные числа.
(define evens
(filter (lambda (n) (= (modulo n 2) 0))
numbers))
;; Умножить каждое чётное число на 10.
(map (lambda (n) (* n 10)) evens)
;; ⇒ (list 20 40 60)Пример читается сверху вниз как один конвейер данных, сначала filter, затем map, и никакой другой синтаксис не стоит на пути.
Ключевые преимущества
- Выполняется напрямую. Код целиком работает в браузере. Пишете код в Песочнице и сразу видите результат, без установки.
- Предсказуемое ядро. Основные формы и детерминированные правила преобразования делают программы лёгкими в изучении и предсказуемыми.
- Обновлённый путь рантайма v1.4. Песочница, npm CLI и нативный интерпретатор теперь разделяют расширенную проверенную поверхность для множественных значений,
apply,moduloи форматирования строк. - Единое S-выражение. Код и данные разделяют одну структуру, поэтому анализ, преобразование и генерация кода остаются простыми.
- Практичная стандартная библиотека. Чистое ядро языка отделено от явных модулей ввода-вывода и системных функций, так что ядро остаётся стабильным, а библиотека практичной.
Следующие шаги
Готовы начать путешествие с Lispex?
- Запустите код прямо сейчас в Песочнице. Эталонный интерпретатор выполняет Lispex в браузере, без установки.
- Начните с руководства «Начало работы», чтобы настроить окружение и запустить свою первую программу.
- Изучите «Синтаксис», где описаны токены, литералы, основные и производные формы и правила нормализации входной грамматики.
- Прочитайте про Ваучер Лиспекса, поток квитанций для решающих правил фиксированного проверяемого профиля, начавшийся в v1.3.
- Исследовательский трек смотрите на Core Semantic Kernel.
Мы с нетерпением ждём, что вы создадите на Lispex.