Next: Vectors, Previous: Arrays, Up: Sequences Arrays Vectors [Contents][Index]
このセクションではすべての型の配列に適用される関数を説明します。
この関数はobjectが配列(ベクター、文字列、ブールベクター、文字テーブル)ならtをリターンする。
(arrayp [a])
⇒ t
(arrayp "asdf")
⇒ t
(arrayp (syntax-table)) ;; 文字テーブル
⇒ t
この関数はarr (配列かレコード)のindex番目の要素をリターンする。1番目の要素のインデクスは0。
(setq primes [2 3 5 7 11 13])
⇒ [2 3 5 7 11 13]
(aref primes 4)
⇒ 11
(aref "abcdefg" 1)
⇒ 98 ; ‘b’のASCIIコードは98
Sequence Functionsの関数eltも参照されたい。
この関数はarrayのindex番目の要素をobjectにセットする。この関数はobjectをリターンする。
(setq w (vector 'foo 'bar 'baz))
⇒ [foo bar baz]
(aset w 0 'fu)
⇒ fu
w
⇒ [fu bar baz]
;; copy-sequenceは後で変更する文字列をコピーする
(setq x (copy-sequence "asdfasfd"))
⇒ "asdfasfd"
(aset x 3 ?Z)
⇒ 90
x
⇒ "asdZasfd"
arrayはmutableであること。Mutabilityを参照のこと。
arrayが文字列でobjectが文字でなければ、結果はwrong-type-argumentエラーとなる。この関数は文字列の挿入で必要なら、ユニバイト文字列をマルチバイト文字列に変換する。
この関数は配列arrayをobjectで充填するので、arrayのすべての要素はobjectになる。この関数はarrayをリターンする。
(setq a (copy-sequence [a b c d e f g]))
⇒ [a b c d e f g]
(fillarray a 0)
⇒ [0 0 0 0 0 0 0]
a
⇒ [0 0 0 0 0 0 0]
(setq s (copy-sequence "When in the course"))
⇒ "When in the course"
(fillarray s ?-)
⇒ "------------------"
arrayが文字列でobjectが文字でなければ、結果はwrong-type-argumentエラーとなる。
配列と判っているオブジェクトにたいしては、一般的なシーケンス関数copy-sequenceとlengthが有用なときがよくあります。Sequence Functionsを参照してください。