2.2 Специальный синтаксис чтения

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.