GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Vector-Functions.html ・ emacs-doc.conao3.com

6.5 ベクトル用の関数

ベクトルに関連する関数をいくつか紹介します。

関数: vectorp object

この関数は、object がベクトルである場合に t を返します。

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

この関数は、引数を要素とするベクトル objects を生成して返します。

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

この関数は、各要素が object で初期化された length 個の要素からなる新しいベクトルを返します。

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

この関数は、sequences のすべての要素を含む新しいベクトルを返します。引数 sequences には、適切なリスト、ベクトル、文字列、または bool-vector を指定できます。sequences が指定されない場合は、空のベクトルが返されます。

値は、空ベクトルであるか、あるいは既存のどのベクトルとも 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 関数は、バイトコード関数オブジェクトを引数として受け取ることもできます。これは、バイトコード関数オブジェクトの全内容に容易にアクセスできるようにするための特別な機能です。クロージャ関数オブジェクトを参照してください。

その他の連結関数については、マッピング関数のmapconcat、文字列の作成のconcat、およびConsセルとリストの構築のappendを参照してください。

append 関数は、ベクトルを同じ要素を持つリストに変換する手段も提供しています:

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