Spec-Zone.ru › Elisp

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

Печатное представление объекта — это формат вывода, генерируемый типографским процессором Lisp (функция prin1) для этого объекта. Каждый тип данных имеет уникальное печатное представление. Синтаксис чтения объекта — это формат входных данных, принимаемых читателем Lisp (функция read) для этого объекта. Он не обязательно уникален; многие типы объектов имеют более одного синтаксиса. См. Чтение и печать.

В большинстве случаев печатное представление объекта также является синтаксисом чтения для этого объекта. Однако некоторые типы не имеют синтаксиса чтения, так как нет смысла вводить объекты этих типов как константы в программе Lisp. Эти объекты печатаются в нотации хешей, которая состоит из символов «#<», описательной строки (обычно имя типа, за которым следует имя объекта), и закрывающего «>». Например:

(current-buffer)
     ⇒ #<buffer objects.texi>

Нотация хешей не может читаться вообще, поэтому читатель Lisp сигнализирует об ошибке invalid-read-syntax, когда встречает «#<».

В других языках выражение является текстом; у него нет другой формы. В Lisp выражение прежде всего является объектом Lisp, а во вторую очередь — текстом, который является синтаксисом чтения объекта. Зачастую нет необходимости подчеркивать это различие, но вы должны держать его в уме, иначе иногда будете очень сбиты с толку.

При интерактивном вычислении выражения интерпретатор Lisp сначала считывает текстовое представление, создавая объект Lisp, а затем вычисляет этот объект (см. Вычисление). Однако вычисление и чтение — это отдельные действия. Чтение возвращает объект Lisp, представленный прочитанным текстом; объект может или не может быть вычислен позже. См. Функции ввода для описания read, основной функции для чтения объектов.

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Printed-Representation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API