Песочница

Философия и границы проекта

Лиспекс остаётся небольшим, детерминированным и проверяемым: один источник семантики, явные исключения и свидетельства без расширения наблюдённых границ.

Пять решений, формирующих язык

  1. Детерминизм входит в идентичность языка. Порядок вычисления, печать, диагностика и объявленные ресурсные исходы — часть контракта, а не случайное свойство одной машины.
  2. Неподдерживаемое поведение отвергается явно. Вычислитель не ищет глобальные имена среды и не заимствует платформенную библиотеку.
  3. Данные отделены от эффектов. Правило возвращает значение. Файлы, сеть, время, случайность и внешние действия принадлежат явному вызывающему коду.
  4. Представление не создаёт полномочий. Исходник, точное изображение, bundle, квитанция и отчёт отвечают на разные вопросы и не превращаются в разрешение сами.
  5. Свидетельство называет знаменатель. Корпус или сравнение бэкендов поддерживает лишь записанные исполнители, входы, наблюдения и пределы.

Компромиссы выбраны намеренно

Выбор ЛиспексаЧто получаемОт чего отказываемся
один закреплённый семантический профильповторяемые результаты и проверяемые отказынеописанное поведение среды
компактный набор значений и процедурязык, который можно охватить картой и тестамиширокую совместимость со Scheme
явная граница с хостомпереносимые и аудируемые правилаудобные неявные I/O и глобальные имена
точная идентичность исходникапобайтовую проверку и переносавтоматическую нормализацию пробелов и кодировки
ограниченные квитанции и Vouchпроверяемые утверждения с ясными точками отказауниверсальное доказательство или переносимое разрешение

Практический способ чтения

Для любой сильной возможности задайте два вопроса: «Какие точные байты и исполнитель описаны?» и «Что по-прежнему обязан сделать вызывающий код?». Поэтому изображение доказывает точное восстановление, но не происхождение, а gate Vouch сообщает одно совпавшее локальное решение, но не разрешает платёж или развёртывание.

Текущая граница

Лиспекс имеет форму Lisp, но не пытается принимать любую программу Scheme. Исключения из области — решения о совместимости. Будущий бэкенд реализует профиль, а не переопределяет язык случайным поведением.

Куда дальше

Точная включённая поверхность описана в «Текущей области», а направления, подчинённые этим решениям, — в плане развития.

Текущая область · План развития