前のエントリでしらっと cadr という関数を使ってるけど、これは (car (cdr ...))
と等しい。同じ要領で caddr、cadddr もある。
gosh> (cadr '(1 2 3 4 5 6 7 8 9 10)) 2 gosh> (caddr '(1 2 3 4 5 6 7 8 9 10)) 3 gosh> (cadddr '(1 2 3 4 5 6 7 8 9 10)) 4 gosh> (caddddr '(1 2 3 4 5 6 7 8 9 10)) *** ERROR: unbound variable: caddddr Stack Trace: _______________________________________
d 4つ以上はないみたいだ。
cdar というのもある。これは (cdr (car ...))
に等しい。
gosh> (cdar '((1 2 3 4) (5 6 7 8))) (2 3 4) gosh> (cddar '((1 2 3 4) (5 6 7 8))) (3 4) gosh> (cdddar '((1 2 3 4) (5 6 7 8))) (4) gosh> (cddddar '((1 2 3 4) (5 6 7 8))) *** ERROR: unbound variable: cddddar Stack Trace: _______________________________________
こっちも d 4つ以上はないみたい。
[追記]
caar というのもあった。
gosh> (car '(((((1) 2) 3) 4) 5)) ((((1) 2) 3) 4) gosh> (caar '(((((1) 2) 3) 4) 5)) (((1) 2) 3) gosh> (caaar '(((((1) 2) 3) 4) 5)) ((1) 2) gosh> (caaaar '(((((1) 2) 3) 4) 5)) (1) gosh> (caaaaar '(((((1) 2) 3) 4) 5)) *** ERROR: unbound variable: caaaaar Stack Trace: _______________________________________
a 4つまである。どうやら a と d (つまり car と cdr)をあわせて4つまであるみたいだ。