シーケンスタイプは、3種類の Lisp タイプ(リスト、ベクトル、ストリング)のスー パータイプです。 (全ての)シーケンスにおける共通点は、順序付けられた要素の集ま りから構成されている点です。
あるオブジェクトがシーケンスであるか否かをテストする関数、シーケンスの長さを返 す関数、シーケンスの要素を返す関数、シーケンスのコピーを返す関数が存在します。 concat 関数(セクション 5.2 [concat]、ページ 42 参照) は、文字からなる(複数の) シーケンスを 1つの新しいストリングにコピーするのに用いることができます。
Function: sequencep object
この関数は、 object がリストか、ベクトルか、ストリングの場合 t、それ以外の 場合 nil を返します。
Function: copy-sequence sequence
この関数は、 sequence のコピーを返します。このコピーに対する変更は、オリジ ナル(訳注:original)には影響を及ぼしません。しかし、これは sequence のトッ プレベルのみをコピーし、それより深いレベルはコピーしません。つまり、 sequence の要素と、コピーにおいて対応する要素とは、互いに eq になります。 コピーとオリジナルのタイプは同じです。シーケンスをコピーする(別の)方法に関 しては、セクション 6.2 [append]、ページ 51 とセクション 5.2 [concat]、ペー ジ 42 を参照して下さい。
(setq bar '(1 2)) => (1 2) (setq x (vector 'foo bar)) => [foo (1 2)] (setq y (copy-sequence x)) => [foo (1 2)]
(eq x y) => nil
(equal x y) => t (eq (elt x 1) (elt y 1)) => t
Function: length sequence
この関数は、 sequence 中の要素の数を返します。(sequence がリストの場合) そ のリストが nil で終っていない場合、 wrong-type-argument エラーになります。
Function: elt sequence integer
この関数は、 integer を添字とする sequence の要素を返します。この関数は、 aref (セクション 7.2.2 [aref]、ページ 61) や nth (セクション 6.3 [nth]、 ページ 52) と機能的には同じですが、どんな種類のシーケンスに対しても機能し ます。シーケンス中の最初の要素の添字は 0 です。
integer が 0 未満か、シーケンスの長さ以上の場合、エラーになります。
(elt [1 2 3 4] 2) => 3 (elt '(1 2 3 4) 2) => 3 (char-to-string (elt "1234" 2)) => "3" (elt [1 2 3 4] 4) -> ERROR: Args out of range: [1 2 3 4], 4 (elt [1 2 3 4] -1) -> ERROR: Args out of range: [1 2 3 4], -1