Lispのリストは基本データ型ではありません。 リストはコンスセル(cons cells)で構成されます。 コンスセルはドット対を表現するデータオブジェクトです。 ドット対は2つのLispオブジェクトを保持、つまり、『指し』ます。 その2つのLispオブジェクトの一方をcar、他方をcdrといいます。 これらの名前は歴史的なものです。 See Cons Cell Type。 cdrは『クダー』と読みます。
リストはコンスセルを連ねたものであり、
リストの各要素ごとにコンスセルが1つあります。
慣習として、コンスセルのcarはリストの要素であり、
cdrはリストを繋ぐために使います。
つまり、各コンスセルのcdrは後続のコンスセルです。
最後のコンスセルのcdrはnilです。
carとcdrの非対称性は単なる慣習によるものです。
コンスセルのレベルでは、carとcdrには同じ性質があります。
ほとんどのコンスセルはリストの一部として使われるので、 リスト構造(list structure)という用語は、 コンスセルで構成した任意の構造を意味するようになりました。
シンボルnilは、シンボルであるとともにリストでもあるとみなします。
これは要素を持たないリストです。
慣習として、シンボルnilのcdr(およびcar)は
nilであるとみなします。
空でない任意のリストlのcdrは、 lの先頭要素を除くすべての要素を含んだリストです。