(Лиспекс)

Язык программирования для правил принятия решений в вашем приложении.

Запишите в коде решения, которые принимает ваше приложение, например издательские правила вёрстки, и получайте ответ, выполняя их в приложении.

Решите, где разместить заголовок внизу страницы.

По этому правилу заголовок переносится на следующую страницу, если под ним остаётся меньше 2 строк. Проверим страницу, на которой осталась 1 строка.

Что означает код

  1. (let ((осталось-строк 1))

    Дайте имя числу строк, оставшихся на странице.

  2.   (if (< осталось-строк 2)

    Проверьте, меньше ли это число, чем 2.

  3.       "перенести"
          "оставить"))

    Выберите первый ответ, если условие верно, или второй, если неверно.

Результат"перенести"

Заголовок переносится на следующую страницу.

Замените 1 на 2 и получите "оставить", то есть заголовок остаётся на этой странице.

Запустить этот пример →

Топаз считает, Лиспекс решает.

В приложении для вёрстки на Топазе движок разбивает текст на строки и собирает страницы. Решения, которые меняются от издательства к издательству, например с какой страницы начинать главу или сколько строк нужно под заголовком, хранятся в файлах правил Лиспекса. Приложение выполняет эти правила вычислителем, который входит в Топаз.

Пример выше самодостаточен и задаёт число оставшихся строк прямо в коде равным 1. В приложении на Топазе то же условие записывают как отдельное правило Лиспекса, которое читает input. При входе 1 правило возвращает «перенести», а при входе 2 возвращает «оставить».

Без доступа наружу

Правило не может читать файлы, обращаться к часам или к сети.

Остановка на пределе

Когда правило доходит до предела работы или памяти, вычисление останавливается, и приложение получает этот результат.

То же правило, тот же ответ

Одно и то же правило, вход и пределы дают тот же ответ при каждой новой вёрстке книги.

Решение должно оставаться проверяемым и после того, как оно принято.

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

  1. 1. Правило

    Приложение проверяет окончательный файл и передаёт правилу результаты проверки формата страницы, полей, встроенных шрифтов и числа страниц.

  2. 2. Подписанная запись

    Native подписывает запись с правилом, вводом и ответом.

  3. 3. Повторное выполнение

    Получатель проверяет подпись доверенным открытым ключом и выполняет своё правило со своими входными данными.

  4. 4. Сравнение

    Ответ повторного выполнения сравнивается с записанным ответом и с решением, которого требует получатель.

Ваучер проверяет, совпадают ли запись и результат повторного выполнения. Что делать дальше, решает вызывающее приложение.

Подпись, повторное выполнение и сравнение выполняются в Native.

Использовать Ваучер Лиспекса →

Выполняйте правила там, где они нужны.

Браузер

Запускайте код в Песочнице без установки. Всё выполняется в вашем браузере.

Открыть песочницу →

Native

Запускайте файлы из командной строки на своём компьютере, задавайте пределы работы и памяти и подписывайте записи Ваучера.

Загрузки →

Приложение на Топазе

Приложение на Топазе вызывает правила через вычислитель, который входит в Топаз. Отдельно устанавливать Лиспекс не нужно.

Запуск в Топазе ↗

Передавайте исходник в изображении.

Изображение Лиспекса хранит точные байты исходного файла в PNG. В этом изображении записан первый пример с этой страницы. Если декодировать неизменённый файл на компьютере или в Песочнице, исходник вернётся вместе с комментариями и пробелами.

Изображение Лиспекса с первым примером этой страницы. Скачать PNG

Восстанавливается только точный исходный файл. Снимок экрана, уменьшенная копия или пересохранённый файл отклоняются.

Создать и прочитать изображение Лиспекса →

Напишите правило для своего приложения.

Пройдите шесть уроков от первой программы до первого правила принятия решения, а затем подключите его к приложению.