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 は常に別のリストになる。