Spec-Zone.ru › Elisp

Вектора

Вектор — это многоцелевой массив, элементы которого могут быть любыми объектами Lisp. (В отличие от этого, элементы строки могут быть только символами. См. Строки и символы.) Вектора используются в Emacs для многих целей: в качестве последовательностей клавиш (см. Последовательности клавиш), в качестве таблиц поиска символов (см. Создание символов), как часть представления байт-скомпилированной функции (см. Байт-компиляция) и многое другое.

Как и другие массивы, векторы используют индексацию с нулевым началом: первый элемент имеет индекс 0.

Вектора выводятся с квадратными скобками вокруг элементов. Таким образом, вектор, элементы которого — символы a, b и a, выводится как [a b a]. Вы можете записать векторы таким же образом в входном языке Lisp.

Вектор, как строка или число, считается константой для вычисления: результат его вычисления — тот же вектор. Это не вычисляет и даже не проверяет элементы вектора. См. Самооцениваемые формы. Векторы, написанные в квадратных скобках, не должны изменяться с помощью aset или других разрушающих операций. См. Изменяемость.

Вот примеры, иллюстрирующие эти принципы:

(setq avector [1 two '(three) "four" [five]])
     ⇒ [1 two '(three) "four" [five]]
(eval avector)
     ⇒ [1 two '(three) "four" [five]]
(eq avector (eval avector))
     ⇒ t

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/Vectors.html

Spec-Zone.ru

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