Next: Array Functions, Previous: Sequence Functions, Up: Sequences Arrays Vectors [Contents][Index]
配列(array)オブジェクトは、いくつかのLispオブジェクトを保持するスロットをもち、これらのオブジェクトは配列の要素と呼ばれます。配列内の任意の要素は、一定時間でアクセスされます。対照的に、リスト内の要素のアクセスに要する時間は、その要素がリスト内のどの位置にあるかに比例します。
Emacsは4つの配列型 —文字列(strings。String Typeを参照してください)、ベクター(vectors。Vector Typeを参照してください)、ブールベクター(bool-vectors。Bool-Vector Typeを参照してください)、文字テーブル(char-tables。Char-Table Typeを参照してください)
—
を定義し、これらはすべて1次元です。ベクターと文字テーブルは任意の型の要素を保持できますが、文字列は文字だけ、ブールベクターはt
かnil
しか保持できません。
4種のすべての配列は、これらの特性を共有します:
aref
により参照されたり、関数aset
により変更されるかもしれません(Array Functionsを参照してください)。
配列を作成したとき、文字テーブル以外では、長さを指定しなければなりません。文字テーブルの長さは、文字コードの範囲により決定されるので、長さを指定できません。
原則として、テキスト文字の配列が欲しい場合は、文字列とベクターのどちらかを使用できます。実際のところ、そのような用途にたいしては、4つの理由により、わたしたちは常に文字列を選択します:
対照的に、(キーシーケンスのような)キーボード入力文字の配列では、多くのキーボード入力文字は、文字列に収まる範囲の外にあるので、ベクターが必要になるでしょう。Key Sequence Inputを参照してください。