Разница между печатью и дисплеем - PullRequest
2 голосов
/ 05 июня 2009

Схема PLT документация говорит:

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

Может кто-нибудь объяснить, что это значит для нуба и чем отличаются print и display

Ответы [ 3 ]

2 голосов
/ 27 июня 2009

Дело в том, что программы могут ожидать определенные выходные форматы от write и display. В PLT можно изменить то, как они ведут себя, но немного вовлечены в это. Это сделано намеренно, поскольку внесение таких изменений может иметь драматический и неожиданный результат.

OTOH, изменение поведения print преднамеренно легко - просто посмотрите документацию current-print. Идея состоит в том, что print используется для отладки, для представления вам кода в интерактивном REPL - , а не в качестве инструмента, на который вы будете полагаться при выводе, который необходимо отформатировать определенным образом. (Кстати, см. Также директиву ~ v для format, printf и т. Д.)

1 голос
/ 05 июня 2009

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

О Дисплей и Запись :

Язык программирования схем , 3-е издание, стр. 178

(display obj)
(display obj output-port)
returns unspecified

дисплей аналогичен запись но печатает строки и символы находится в obj напрямую. Струны печатаются без кавычек или косые черты и символы печатаются без # \ обозначения. Например, оба (дисплей "(a b c)") и (дисплей '("a b" c)) будет печатать (a b c) . Из-за этого display не должен использоваться для печати объектов с отступом для чтения прочитать . display полезен в основном для печати сообщений, с obj чаще всего это строка.

0 голосов
/ 11 июня 2009

Если вы не хотите заменять печать, вы можете вместо этого попробовать SRFI-28:

http://srfi.schemers.org/srfi-28/srfi-28.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...