リストは、リンクされたコンスセル(訳注: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 要素のリスト