計算機プログラムの構造と解釈 第二版 P62 問題2.25
パズルみたいな問題。
いったん、よくわかんないcarを入れるのがポイント。
ま、よく考えるとわかるんだけども。
listの定義をよくふまえないと、ちょっとあれだ。
実装
#!/usr/local/bin/gosh ;; -*- coding: utf-8 -*- (use ggc.debug.trace) (use math.mt-random) (define x (list 1 3 (list 5 7) 9)) (define y (list (list 7))) (define z (list 1 (list 2 (list 3 (list 4 (list 5 (list 6 7))))))) ;; main (define (main args) (display "x:") (display x) (newline) (display "(car (cdr (car (cdr (cdr x))))): ") (display (car (cdr (car (cdr (cdr x)))))) (newline) (newline) (display "y:") (display y) (newline) (display "(car (car y)): ") (display (car (car y))) (newline) (newline) (display "z:") (display z) (newline) (display "(car (cdr (car (cdr (car (cdr (car (cdr (car (cdr (car (cdr z)))))))))))):") (display (car (cdr (car (cdr (car (cdr (car (cdr (car (cdr (car (cdr z))))))))))))) (newline) (newline) 0)
実行
x:(1 3 (5 7) 9) (car (cdr (car (cdr (cdr x))))): 7 y:((7)) (car (car y)): 7 z:(1 (2 (3 (4 (5 (6 7)))))) (car (cdr (car (cdr (car (cdr (car (cdr (car (cdr (car (cdr z)))))))))))):7