Next: Vectors, Previous: Arrays, Up: Sequences Arrays Vectors
本節では任意の配列型を受け付ける関数を説明します。
この関数はobjectが配列 (つまり、ベクトル、文字列、ブールベクトル、あるいは、文字テーブル)ならば、
t
を返す。(arrayp [a]) t (arrayp "asdf") t (arrayp (syntax-table)) ;; 文字テーブル t
この関数はarrayのindex番目の要素を返す。 最初の要素の添字は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コード98Sequence Functionsの関数
elt
も参照。
この関数は配列arrayのindex番目の要素にobjectを設定する。 objectを返す。
(setq w [foo bar baz]) [foo bar baz] (aset w 0 'fu) fu w [fu bar baz] (setq x "asdfasfd") "asdfasfd" (aset x 3 ?Z) 90 x "asdZasfd"arrayが文字列であり、かつ、objectが文字でなければ、 結果はエラー
wrong-type-argument
となる。 arrayが文字列であり、かつ、objectが文字であっても、 現在(aref
object index)
に保存されている文字のバイト数と objectが使うバイト数が異なれば、やはり、エラーとなる。 see Splitting Characters。
この関数は、配列arrayをobjectで埋め、 arrayの各要素がobjectとなるようにする。 arrayを返す。
(setq a [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 "When in the course") "When in the course" (fillarray s ?-) "------------------"arrayが文字列であり、かつ、objectが文字でなければ、 結果はエラー
wrong-type-argument
になる。
配列であることが既知のオブジェクトに対しては、
汎用のシーケンス関数copy-sequence
やlength
がしばしば有用です。
See Sequence Functions。