Next: , Previous: Array Functions, Up: Sequences Arrays Vectors


6.4 ベクトル

Lispの配列は、ほとんどの言語の配列と同様に、 その要素を一定時間で参照可能なメモリのブロックです。 ベクトル(vector)は指定長の汎用配列です。 その要素はどんなLispオブジェクトでもかまいません。 (対照的に、文字列は要素としては文字だけを保持する。) Emacsでは、オブジェクト配列obarray(シンボルのベクトル)、 キーマップ(コマンドのベクトル)の一部にベクトルを使っています。 これらは、内部的には、バイトコード関数の表現の一部にも使っています。 そのような関数を表示すると、その中にベクトルがあるのがわかります。

Emacs Lispでは、ベクトルの要素の添字は0から始まります。

ベクトルは要素を角括弧で囲んで表示します。 したがって、要素がシンボルabaであるベクトルは、 [a b a]と表示されます。 Lispへの入力では同じようにベクトルを書きます。

文字列や数と同様に、評価上、ベクトルは定数とみなします。 それを評価した結果は、同じベクトルです。 この評価では、ベクトルの要素を評価したり調べたりはしません。

以下は、これらの原理を例示するものです。

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