Spec-Zone.ru › Elisp

Последовательности, массивы и векторы

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

Массив — это объект фиксированной длины со слотом для каждого из его элементов. Все элементы доступны за постоянное время. Четыре типа массивов — строки, векторы, таблицы символов и векторы булевых значений.

Список — это последовательность элементов, но он не является единственным примитивным объектом; он состоит из ячеек cons, по одной ячейке на каждый элемент. Для поиска n-го элемента требуется просмотреть n ячеек cons, поэтому элементы, удаленные от начала списка, требуют больше времени для доступа. Но к списку можно добавлять или удалять элементы.

На следующем рисунке показаны взаимосвязи между этими типами:

          _____________________________________________
         |                                             |
         |          Sequence                           |
         |  ______   ________________________________  |
         | |      | |                                | |
         | | List | |             Array              | |
         | |      | |    ________       ________     | |
         | |______| |   |        |     |        |    | |
         |          |   | Vector |     | String |    | |
         |          |   |________|     |________|    | |
         |          |  ____________   _____________  | |
         |          | |            | |             | | |
         |          | | Char-table | | Bool-vector | | |
         |          | |____________| |_____________| | |
         |          |________________________________| |
         |_____________________________________________|
• Функции последовательностей Функции, принимающие любой тип последовательности.
• Массивы Характеристики массивов в Emacs Lisp.
• Функции массивов Функции, предназначенные специально для массивов.
• Векторы Специальные характеристики векторов в Emacs Lisp.
• Функции векторов Функции, предназначенные специально для векторов.
• Таблицы символов Как работать с таблицами символов.
• Векторы булевых значений Как работать с векторами булевых значений.
• Кольца Управление кольцом объектов фиксированного размера.

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

Spec-Zone.ru

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