>>54
簡単に書けるよ?

(define x #f)
(define foo
 (lambda (new-x)
  (let ((old-x x))
   (dynamic-wind
    (lambda () (set! x new-x))
    (lambda () (bar))
    (lambda () (set! x old-x))))))
(define bar (lambda () x))

もちろん、実際には(fluid-letとかの名の)マクロを使うけど。