「CARとCDR」の版間の差分
削除された内容 追加された内容
m →名前と語源 |
m編集の要約なし |
||
1行目:
{{読み仮名|'''CAR'''と'''CDR'''
LISPではリストは[[cons (Lisp)|コンス]]('''ペア'''または'''ドット対'''とも呼ばれる)の鎖によって実現されており、CARとCDRという名前はコンスを構成する2つの部分を指すのにも用いられる。
17行目:
リストLの2番目の要素は {{code|lang=lisp|(car (cdr L))}}、3番目の要素は {{code|lang=lisp|(car (cdr (cdr L)))}} のようにして得られる。Common Lispなどの多くのLISP方言では、簡略化するために、{{code|lang=lisp|(car (cdr L))}} と同じことをする {{code|lang=lisp|(cadr L)}} という関数が定義されている。同様に caddr, cadddr なども存在する。
関数car
car/cdrは、consと逆のことをする関数である。すなわち{{code|lang=lisp|(car (cons X Y))}}は X に、{{code|lang=lisp|(cdr (cons X Y))}} は Y に等しい。また、{{code|lang=lisp|(cons (car L) (cdr L))}} は L と構造的には等しい(同じオブジェクトを指すとは限らない)。
35行目:
</syntaxhighlight>
のように定義できる(なお、上記の例はいずれも空リストが真偽値として偽になることを利用している)。
== 脚注 ==
|