Next: , Previous: , Up: Sequences Arrays Vectors   [Contents][Index]


6.5 Functions for Vectors

ベクターに関連した関数をいくつか示します:

Function: vectorp object

この関数は、objectがベクターの場合は、tをreturnします。

(vectorp [a])
     ⇒ t
(vectorp "asdf")
     ⇒ nil
Function: vector &rest objects

この関数は、引数objectsを要素にもつベクターを作成してreturnします。

(vector 'foo 23 [bar baz] "rats")
     ⇒ [foo 23 [bar baz] "rats"]
(vector)
     ⇒ []
Function: make-vector length object

この関数は、objectに初期化されたlength個の要素からなる、新しいベクターをreturnします。

(setq sleepy (make-vector 9 'Z))
     ⇒ [Z Z Z Z Z Z Z Z Z]
Function: vconcat &rest sequences

この関数は、sequencesのすべての要素を含む、新しいベクターをreturnします。引数sequencesは真リスト、ベクター、文字列、ブールベクターです。sequencesが与えられない場合、空のベクターがreturnされます。

値は空のベクター、または任意の既存のベクターとeqではない、新しい空ではないベクターのどちらかです。

(setq a (vconcat '(A B C) '(D E F)))
     ⇒ [A B C D E F]
(eq a (vconcat a))
     ⇒ nil
(vconcat)
     ⇒ []
(vconcat [A B C] "aa" '(foo (6 7)))
     ⇒ [A B C 97 97 foo (6 7)]

vconcat関数は、引数としてバイトコード関数オブジェクトもとることができます。これは、バイトコード関数オブジェクトの内容全体にアクセスするのを容易にするための、特別な機能です。Byte-Code Objectsを参照してください。

結合を行なう他の関数については、Mapping FunctionsmapconcatCreating StringsconcatBuilding Listsappendを参照してください。

append関数は、ベクターを同じ要素をもつリストに変換する方法も提供します:

(setq avector [1 two (quote (three)) "four" [five]])
     ⇒ [1 two (quote (three)) "four" [five]]
(append avector nil)
     ⇒ (1 two (quote (three)) "four" [five])