Когда это нужно
Здесь проходит граница между детерминированным гостевым вычислением и эффектами среды. Для явного текста используйте встроенный вывод. Файлы, сеть, время, случайность и внешние действия оставляйте вызывающему приложению.
Проверьте запуском
(begin (display "answer=") (write 42) (newline) 0)Наблюдаемый результат
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 | порядок детерминирован |
| файл или сеть | нет | выполнить на явной границе вызова |
| часы или случайность | нет | передать выбранное значение во входе |
| внешнее действие по решению | нет | разрешить и выполнить в коде потребителя |
Частая ошибка
Порты, файловая система, сеть, время, случайность и неограниченное вычисление среды не входят в текущий чистый профиль.
Текущие границы
- У буфера вывода есть закреплённый предел размера. За этими процедурами нет скрытых портов, файлов или сетевых дескрипторов.
- Выпуск целевого языка не является режимом выполнения Лиспекса.
Куда дальше
Руководство по средам помогает выбрать способ запуска для границы с хостом, а решающие правила показывают возврат помеченных данных вместо действия.