Spec-Zone.ru › Elisp

Типы данных Lisp

Объект Lisp — это фрагмент данных, используемый и обрабатываемый программами Lisp. Для наших целей, тип или тип данных — это набор возможных объектов.

Каждый объект принадлежит хотя бы одному типу. Объекты одного типа имеют похожие структуры и, как правило, могут использоваться в одних и тех же контекстах. Типы могут перекрываться, и объекты могут принадлежать двум или более типам. Следовательно, мы можем спросить, принадлежит ли объект конкретному типу, но не определённый тип объекта.

Некоторые фундаментальные типы объектов встроенные в Emacs. Эти типы, из которых строятся все остальные типы, называются примитивными типами. Каждый объект принадлежит одному и только одному примитивному типу. К этим типам относятся целые числа, числа с плавающей запятой, cons, символ, строка, вектор, хеш-таблица, subr, функция байткода и запись, а также несколько специальных типов, таких как буфер, которые связаны с редактированием. (См. Типы редактирования.)

Каждый примитивный тип имеет соответствующую функцию Lisp, которая проверяет, является ли объект членом этого типа.

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

В большинстве языков программист должен объявить тип данных каждой переменной, и тип известен компилятору, но не представлен в данных. Такие объявления типов в Emacs Lisp отсутствуют. Переменная Lisp может иметь любой тип значения, и она запоминает любое значение, которое вы в ней храните, тип и всё остальное. (На самом деле, небольшое количество переменных Emacs Lisp может принимать только значения определённого типа. См. Переменные с ограниченными значениями.)

В этой главе описаны назначение, печатное представление и синтаксис чтения каждого из стандартных типов в GNU Emacs Lisp. Подробности о том, как использовать эти типы, можно найти в последующих главах.

• Печатное представление Как объекты Lisp представляются в виде текста.
• Специальный синтаксис чтения Обзор всех специальных последовательностей.
• Комментарии Комментарии и их соглашения по форматированию.
• Типы программирования Типы, встречающиеся во всех системах Lisp.
• Типы редактирования Типы, специфичные для Emacs.
• Циклические объекты Синтаксис чтения для циклических структур.
• Предикаты типов Тесты, связанные с типами.
• Предикаты равенства Тесты равенства между любыми двумя объектами.
• Изменяемость Некоторые объекты не должны изменяться.

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/Lisp-Data-Types.html

Spec-Zone.ru

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