SICP 問題 2.25(リストから7を取り出すcar/cdrの組み合わせ)

【問題】

次のそれぞれのリストから、7を取り出す car と cdr の組み合わせを書け。


① (1 3 (5 7) 9)
②((7))
③ (1 (2 (3 (4 (5 (6 7))))))

【解答】

普通に解いてみる。

;①について
(define lis1 '(1 3 (5 7) 9))
(car (cdr (car (cdr (cdr lis1)))))

;②について
(define lis2 '((7)))
(car (car lis2))

;③について
(define lis3 '(1 (2 (3 (4 (5 (6 7)))))))
(car (cdr (car (cdr (car (cdr (car (cdr (car (cdr (car (cdr lis3))))))))))))

こんな感じ。
全部実行してみると7がとれてるのが分かるぞ。