Spec-Zone.ru › Elisp

Типы данных Lisp

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

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

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

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

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

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

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

  • Печатное представление и синтаксис чтения
  • Специальный синтаксис чтения
  • Комментарии
  • Типы, используемые в программировании
  • Типы, связанные с редактированием
  • Синтаксис чтения циклических объектов
  • Предикаты типов
  • Предикаты равенства
  • Изменяемость
  • Иерархия типов объектов Emacs Lisp

Copyright © 1990-1996, 1998-2026 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