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

リストタイプ

リストは、リンクされたコンスセル(訳注:cons cell)の並びです。コンスセルは、car や cdr として知られる (それぞれにまた Lisp オブジェクトを指す) 2つのポインター から構成される Lisp オブジェクトです。 (通常)コンスセルを用いる場合、 cdr は別 のコンスセルを指すか (nil として知られる) empty リストを指します。

プログラムにリストを入力する場合、`(' で始め、そのリストの要素を続け、`)' で閉 じます。`(' と `)' の間に読み込まれたオブジェクトは、何であれ(シンボル、数字、 ベクトル、ストリング、他のリスト)リストの要素になります。エスケープ文字 `\' は `(' と `)' の特別な意味をなくしますが、そのような用い方は避けるべきでしょう。 ストリングやコマンド中に対応しない括弧が存在する場合、 (いくつかの関数では)リ ストを扱う際に混乱を生ずる可能性があります。

要素を持たないリストは empty リストと呼ばれます。これはシンボル nil と同じで す。 (言い換えると) nil は、リスト (listp nil) > t とシンボル (symbolp nil) > t の両方として認識されます(訳注:> は評価結果を示しています)。

文字 `.' は、リスト中では特別な意味を持ちます。これは (後に続く1つのオブジェク トが)そのリストの最後のコンスセルの cdr として用いられることを示します。このた め、この特殊なリストは nil でターミネートされていません。

      (A 2 "A")          ;3 要素のリスト
      ()                 ;要素を持たないリスト(empty リスト)
      nil                ;要素を持たないリスト(empty リスト)
      ("A ()")           ;1 要素のリスト
      (A ())             ;2 要素 (A と empty リスト) のリスト
      (A . B)            ;1 要素のリストと nil でない cdr
      (A . B . C)        ;正しくない(訳注:invalid)シンタックス
      ((A B C))          ;(3 要素のリストを要素とする)1 要素のリスト

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