car
関数 car はリストの中の最初のS式を返す。
gosh> (car '(a b c))
a
gosh> (car '((a b c) x y z))
(a b c)
アトムや空リストに適用するとエラーになる。
gosh> (car 'atom)
*** ERROR: pair required, but got atom
Stack Trace:
_______________________________________
gosh> (car '())
*** ERROR: pair required, but got ()
Stack Trace:
_______________________________________
Car の掟
関数 car は空でないリストに対してのみ定義される。
cdr
関数 cdr (クダーと読む)はリストの中から最初のS式を取り除いた、残りのリストを返す。
gosh> (cdr '(a b c))
(b c)
gosh> (cdr '((a b c) x y z))
(x y z)
gosh> (cdr '(hamburger))
()
S式がひとつしかないリストの場合には、空リストが返ってくるんだな。
アトムや空リストに適用すると、エラーになる。
gosh> (cdr 'atom)
*** ERROR: pair required, but got atom
Stack Trace:
_______________________________________
gosh> (cdr '())
*** ERROR: pair required, but got ()
Stack Trace:
_______________________________________
Cdr の掟
関数 cdr は空でないリストについてのみ定義される。
空でないリストの cdr は常に別のリストになる。