Go to the first, previous, next, last section, table of contents.

シーケンス

シーケンスタイプは、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


Go to the first, previous, next, last section, table of contents.