Специальная форма quote возвращает свой единственный аргумент в том виде, в котором он записан,
без его вычисления. Это позволяет включать константные символы
и списки, которые не являются самовычисляемыми объектами, в программу. (Не
обязательно кавычить самовычисляемые объекты, такие как числа, строки
и векторы.)
Эта специальная форма возвращает object без его вычисления. Возвращаемое значение может быть общим и не должно изменяться. См. Самовычисляемые формы.
Поскольку quote очень часто используется в программах, Lisp предоставляет удобный синтаксис чтения для него. Апостроф (‘'’), за которым следует объект Lisp (в синтаксисе чтения), расширяется в список, первый элемент которого — quote, а второй элемент — этот объект. Таким образом, синтаксис чтения 'x является сокращением для (quote x).
Ниже приведены примеры выражений, использующих quote:
(quote (+ 1 2))
⇒ (+ 1 2)
(quote foo)
⇒ foo
'foo
⇒ foo
''foo
⇒ 'foo
'(quote foo)
⇒ 'foo
['foo]
⇒ ['foo]
Хотя выражения (list '+ 1 2) и '(+ 1 2)
обе дают списки, равные (+ 1 2), первое дает
свежесозданный изменяемый список, тогда как второе дает список,
составленный из консов, который может быть общим и не должен изменяться.
См. Самовычисляемые формы.
Другие конструкции кавычивания включают function (см. Анонимные функции), которая заставляет скомпилировать анонимное лямбда-выражение, написанное на Lisp, и ‘`’ (см. Обратные кавычки), которая используется для кавычивания только части списка, при вычислении и подстановке других частей.