Lispにおけるリストはプリミティブなデータ型ではなく、コンスセル(コンスセルとリストの型を参照)から構成されています。コンスセルとは、順序付きペアを表すデータオブジェクトのことです。つまり、2つのスロットを持ち、それぞれのスロットが何らかのLispオブジェクトを保持、あるいは参照しています。一方のスロットはCAR、もう一方はCDRと呼ばれます。(これらの名称は伝統的なものです。コンスセルとリストの型を参照してください。)CDRは「クダー」と発音します。
このコンスセルの「CARは」、現在そのCARスロットが保持しているオブジェクトであるとし、CDRについても同様とします。
リストとは、コンスセルが連鎖した一連の構造であり、各セルが次のセルを参照しています。リストの各要素に対して、1つのコンスセルが存在します。慣習として、コンスセルのCARにはリストの要素が格納され、CDRはリストを連結するために使用されます(このCARとCDRの非対称性は完全に慣習によるもので、コンスセルのレベルでは、CARとCDRのスロットは同様の性質を持っています)。したがって、リスト内の各コンスセルのCDRスロットは、後続のコンスセルを参照します。
また、慣例により、リストの最後のコンスセルのCDRはnilとなります。このようなnil終端の構造を正則リスト5と呼びます。Emacs Lispにおいて、シンボルnilはシンボルであると同時に、要素を持たないリストでもあります。便宜上、シンボルnilはnilをCDR(およびCAR)として持つものとみなされます。
したがって、真のリストのCDRは常に真のリストとなる。空でない真のリストのCDRは、最初の要素を除くすべての要素を含む真のリストである。
リストの最後のコンスセルのCDRがnil以外の値である場合、その構造をドット付きリストと呼びます。これは、その出力表現においてドット付きペア表記(ドット付きペア表記を参照)が用いられるためです。他にも一つの可能性があります。あるコンスセルのCDRが、リスト内の直前のコンスセルのいずれかを指している場合です。このような構造を循環リストと呼びます。
用途によっては、リストが適正リストであるか、循環リストであるか、あるいはドット付きリストであるかは問題になりません。プログラムがリストを十分に辿らず、最後のコンスセルのCDRを確認できなかったとしても、問題にはなりません。しかし、リストを操作する一部の関数は適正リストを要求し、ドット付きリストが与えられた場合にはエラーを通知します。リストの末尾を探そうとするほとんどの関数は、循環リストが与えられた場合に無限ループに陥ります。リストが適正リストであるかどうかを判定するには、次節で説明する関数proper-list-p(proper-list-pを参照)を使用できます。
ほとんどのコンスセルはリストの一部として用いられるため、コンスセルで構成されるあらゆる構造をリスト構造と呼びます。