演習問題4.18
変換前
(define (solve f y0 dt) (define y (integral (delay dy) y0 dt)) (define dy (stream-map f y)) y)
変換後
(define (solve f y0 dt) (let ((y '*unassigned*) (dt '*unassigned)) (let ((a (integral (delay dy) y0 dt)) (b (stream-map f y))) (set! y a) (set! dy b) y)))
これは動かない(はず).2つ目のlet式でaを束縛するとき,(integral (delay dy) y0 dt))の評価が行われるが,この時点ではdtは'*unassigned* なので.