mystery によって何が起こるでしょう!
(define (mystery x) (define (loop x y) (if (null? x) y (let ((temp (cdr x))) (set-cdr! x y) (loop temp x)))) (loop x '())) (define v (list 'a 'b 'c 'd)) (define w (mystery v)) (print w) ; (d c b a)
見事に reverse になるんですけど,このときの構造は下のような感じ.