「CARとCDR」の版間の差分

削除された内容 追加された内容
m 「と」を太字部から除く
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/cdrの要素引数が空リストである場合、Common Lispでは空リストを返す<ref>COMMON LISP 第2版 p.361</ref>。[[Scheme]]ではエラーになる<ref>{{cite book|chapterurl=https://www.scheme.com/tspl4/objects.html#./objects:h3|chapter=Operations on Objects|title=The Scheme Programming Language|author=R. Kent Dybvig|edition=4th|publisher=The MIT Press|year=2009|isbn=978-0-262-51298-5}}</ref>。
 
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 と構造的には等しい(同じオブジェクトを指すとは限らない)。