プリミティブ setcar および setcdr
を使用して、コンスセルの CAR および CDR
の内容を変更できます。これらは既存のリスト構造を変更するため、破壊的操作となります。破壊的操作は、可変リスト、すなわち cons、list
または同様の操作によって構築されたリストに対してのみ適用すべきです。クォートによって作成されたリストはプログラムの一部であり、破壊的操作によって変更してはなりません。可変性 を参照してください。
Common Lispに関する注記: Common Lispでは、リスト構造を変更するために関数
rplacaとrplacdを使用します。これらはsetcarやsetcdrと同様に構造を変更しますが、Common Lispの関数はコンスセルを返すのに対し、setcarとsetcdrは新しい CAR または CDR を返します。