Песочница

Ввод-вывод, возможности и явные эффекты

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

Когда это нужно

Здесь проходит граница между детерминированным гостевым вычислением и эффектами среды. Для явного текста используйте встроенный вывод. Файлы, сеть, время, случайность и внешние действия оставляйте вызывающему приложению.

Проверьте запуском

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

Наблюдаемый результат

OUTPUT
answer=42
0

Разбор примера

display выводит содержимое строки. write печатает 42 в той гостевой записи, которую можно прочитать обратно, а newline добавляет перевод строки. println в точности равен display с последующим переводом строки. Последний 0 является результатом программы, который печатает CLI, поэтому он следует после явного вывода.

Как рассуждать

  • display печатает строки без кавычек и символы как глифы, а write использует кавычки, экранирование и запись символов, которые можно прочитать обратно.
  • Все четыре процедуры возвращают ноль значений. Явный вывод и автопечать CLI делят один порядок stdout, а квитанция отдельной записью хранит значения завершённых корневых форм.
  • Уже записанный вывод сохраняется, если следующая форма завершается ошибкой.
  • Выбор файла/stdin и метки источника в CLI относятся к вызову, а не к новым связываниям языка.
  • Внешние возможности должны быть явными и версионированными, а не находиться через запасной путь глобальных имён среды.
  • Native MCP, локальный сервер, к которому подключается ассистент, не выдаёт ни одной из этих возможностей. lispex_eval получает исходник и необязательный datum по локальному stdio и возвращает наблюдения в пределах закреплённых ограничений по размеру и времени.

Быстрый выбор

ОперацияДоступна внутри Лиспекса?Альтернатива
печать значения, которую можно прочитать обратнода, через writeкогда напечатанное должно снова разбираться
текст для человекада, через display, newline, printlnпорядок детерминирован
файл или сетьнетвыполнить на явной границе вызова
часы или случайностьнетпередать выбранное значение во входе
внешнее действие по решениюнетразрешить и выполнить в коде потребителя

Частая ошибка

Порты, файловая система, сеть, время, случайность и неограниченное вычисление среды не входят в текущий чистый профиль.

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

  • У буфера вывода есть закреплённый предел размера. За этими процедурами нет скрытых портов, файлов или сетевых дескрипторов.
  • Выпуск целевого языка не является режимом выполнения Лиспекса.

Куда дальше

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

Выбор способа запуска · Запуск и проверка записей решения