そいういえば SICPの 2.3.2 で出てきた cadr と caddr は見たこと無かった気がする。car と cdr は知ってたけど。見落としてただけかもしれないけど...
とりあえずどこまで間に『d』を増やしても大丈夫なのかやってみた
scheme
(car '(0 1 2 3 4 5)) ;0 (cadr '(0 1 2 3 4 5)) ;1 (caddr '(0 1 2 3 4 5)) ;2 (cadddr '(0 1 2 3 4 5)) ;3 (caddddr '(0 1 2 3 4 5)) ;*** ERROR: unbound variable: caddddr (cdr '(0 1 2 3 4 5)) ;(1 2 3 4 5) (cddr '(0 1 2 3 4 5)) ;(2 3 4 5) (cdddr '(0 1 2 3 4 5)) ;(3 4 5) (cddddr '(0 1 2 3 4 5)) ;(4 5) (cdddddr '(0 1 2 3 4 5)) ;*** ERROR: unbound variable: cdddddr
『car』は『cadddr』まで、『cdr』は『cddddr』までイケた(・∀・)
一応 Python も。
print [0, 1, 2, 3, 4, 5][0] #0 print [0, 1, 2, 3, 4, 5][1] #1 print [0, 1, 2, 3, 4, 5][2] #2 print [0, 1, 2, 3, 4, 5][3] #3 print [0, 1, 2, 3, 4, 5][4] #4 print [0, 1, 2, 3, 4, 5][1:] #[1, 2, 3, 4, 5] print [0, 1, 2, 3, 4, 5][2:] #[2, 3, 4, 5] print [0, 1, 2, 3, 4, 5][3:] #[3, 4, 5] print [0, 1, 2, 3, 4, 5][4:] #[ 4, 5] print [0, 1, 2, 3, 4, 5][5:] #[5]
当たり前だけど、際限無い。