プリミティブsetcar
とsetcdr
でコンスセルのCARおよびCDRのコンテンツを変更できます。これらは既存のリスト構造を変更するので破壊的な操作です。破壊的操作はmutable(変更可能)なリスト、すなわちcons
、list
、または類似の操作により構築される必要があります。クォートにより作成されたリストはプログラムの一部であり、破壊的な操作により変更するべきではありません。可変性を参照してください。
Common Lispに関する注意: Common Lispはリスト構造の変更に
rplaca
とrplacd
を使用する。これらはsetcar
やsetcdr
と同じ方法でリスト構造を変更するが、setcar
とsetcdr
は新しいCARやCDRをリターンするのにたいして、Common Lispの関数はコンスセルをリターンする。