Песочница

Ввод, вывод и разрешения приложения

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

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

Выведите значение

Установите Native Лиспекс и сохраните полный исходник в output.lspx.

LISPEX
(begin (display "answer=") (write 42) (newline) 0)

Выполните файл.

SH
lispex run output.lspx

Команда печатает следующий текст и завершается с кодом 0. Новых файлов нет.

answer=42
0

Программа явно печатает answer=42 и перевод строки. Затем Native печатает возвращённое формой значение 0 в отдельной строке.

ПроцедураЧто выводит
displayТекст для чтения человеком
writeЗначение в читаемой записи Лиспекса
newlineОдин перевод строки
printlnТекст как у display и перевод строки

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

Прочитайте вывод после остановки

Профиль ресурсов задаёт лимит байтов вывода. При выполнении полного исходника Native по-разному обрабатывает обычные ошибки и остановки по ресурсам.

ИсходstdoutКод завершения
Успешное выполнениеЯвный вывод и возвращённые значения0
Обычная ошибка выполненияВывод, записанный до ошибки1
Достигнут лимит ресурсовПустой2

Например, сохраните следующий файл как output-error.lspx.

LISPEX
(display "before\n")
(car 1)
SH
lispex run output-error.lspx

stdout содержит before и перевод строки. Содержимое stderr приведено ниже. Команда завершается с кодом 1 и не создаёт файлов.

E310 output-error.lspx:2:1 car: expected a pair, got 1

CLI читает весь исходник и преобразует сокращённую запись в основные формы до вычисления. При ошибке исходника на этом этапе stdout остаётся пустым. Исходы по ресурсам описаны в разделе о ресурсах.

Передайте внешние действия приложению

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

ОперацияКто её выполняет
Вывод значений и текстаПроцедуры вывода Лиспекса
Выбор файла исходника и стандартного вводаСторона, запускающая CLI
Доступ к файлам и сетиАдаптер вызывающего приложения
Время и случайностьПриложение передаёт их как явные входные данные
Базы данных и транзакцииПриложение управляет состоянием и фиксацией изменений
Платежи, развёртывание и другие внешние действияПриложение применяет свою политику после проверки решения

Native MCP передаёт исходник, необязательное входное значение и результаты через локальные стандартные потоки ввода и вывода. Он применяет заданные лимиты байтов и времени. Адаптеры приложения передают проверенные данные в правило и используют полученное решение.

«Лиспекс в вашем приложении» · Решающие правила