Специальный синтаксис чтения
Emacs Lisp представляет многие специальные объекты и конструкции с помощью специальных обозначений хешей.
- ‘#<…>’
-
Объекты, у которых нет синтаксиса чтения, представляются так (см. Печатное представление).
- ‘##’
-
Печатное представление интернированного символа, имя которого пустая строка (см. Тип символа).
- ‘#'’
-
Это сокращение для
function, см. Анонимные функции. - ‘#:’
-
Печатное представление неинтернированного символа, имя которого foo, это ‘#:foo’ (см. Тип символа).
- ‘#N’
-
При печати циклических структур эта конструкция используется для представления места, где структура циклически возвращается к себе, и ‘N’ - это начальный счёт списка:
(let ((a (list 1))) (setcdr a a)) => (1 . #0)
- ‘#N=’
- ‘#N#’
-
‘#N=’ присваивает имя объекту, а ‘#N#’ представляет этот объект, поэтому при повторном чтении объекта они будут одним и тем же объектом, а не копиями (см. Циклические объекты).
- ‘#xN’
-
‘N’ представлен в шестнадцатеричном формате (‘#x2a’).
- ‘#oN’
-
‘N’ представлен в восьмеричном формате (‘#o52’).
- ‘#bN’
-
‘N’ представлен в двоичном формате (‘#b101010’).
- ‘#(…)’
-
Свойства текстового текста (см. Свойства текста и строки).
- ‘#^’
-
Таблица символов (см. Тип таблицы символов).
- ‘#s(hash-table …)’
-
Хеш-таблица (см. Тип хеш-таблицы).
- ‘?C’
-
Символ (см. Базовый синтаксис символов).
- ‘#$’
-
Текущее имя файла в байткодированных файлах (см. Документация и компиляция). Это не должно использоваться в исходных файлах Emacs Lisp.
- ‘#@N’
-
Пропустить следующие ‘N’ символов (см. Комментарии). Это используется в байткодированных файлах и не должно использоваться в исходных файлах Emacs Lisp.
- ‘#f’
Указывает, что следующая форма нечитаема для Emacs Lisp. Это только в текстовом виде для отображения (когда это выглядит лучше, чем альтернативные способы обозначения нечитаемой формы) и никогда не будет появляться ни в одном файле Lisp.
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/Special-Read-Syntax.html