シーケンス(sequence)型は2つの異なるLisp型 — リストと配列 — を結合した型です。言い換えると任意のリストはシーケンスであり任意の配列はシーケンスです。すべてのシーケンスがもつ共通な属性は、それぞれが順序づけされた要素のコレクションであることです。
配列(array)はスロットがその要素であるような、固定長のオブジェクトです。すべての要素に一定時間でアクセスできます。配列の4つの型として文字列、ベクター、文字テーブル、ブールベクターがあります。
リストは要素のシーケンスですが、要素は単一の基本オブジェクトではありません。リストはコンスセルにより作られ、要素ごとに1つのセルをもちます。n番目の要素を探すにはn個のコンスセルを走査する必要があるので、先頭から離れた要素ほどアクセスに時間を要します。しかしリストは要素の追加や削除が可能です。
以下の図はこれらの型の関連を表しています:
_____________________________________________
| |
| Sequence |
| ______ ________________________________ |
| | | | | |
| | List | | Array | |
| | | | ________ ________ | |
| |______| | | | | | | |
| | | Vector | | String | | |
| | |________| |________| | |
| | ____________ _____________ | |
| | | | | | | |
| | | Char-table | | Bool-vector | | |
| | |____________| |_____________| | |
| |________________________________| |
|_____________________________________________|
| • Sequence Functions | 任意の種類のシーケンスを許す関数。 | |
| • Arrays | Emacs Lispの配列の特徴。 | |
| • Array Functions | 配列に特化した関数。 | |
| • Vectors | Emacs Lispベクターの特質。 | |
| • Vector Functions | ベクターのための特別な関数。 | |
| • Char-Tables | 文字テーブルを扱う方法。 | |
| • Bool-Vectors | ブールベクターを扱う方法。 | |
| • Rings | オブジェクトの固定サイズのリングを管理する。 |