(a)
(define-syntax define-cbr
   (syntax-rules ()
      ((_ (id arg ...) body)
       (begin
          ???
          (define-syntax id
             (syntax-rules ()
               ((id actual (... ...))
                 (do-f (lambda () actual)
                       (... ...)
                       (lambda (v)
                          (set! actual v))
                       (... ...))         )))))))

(b)
(define (do-f get set)
   (define-get/set-var arg get set)
   body)

Example 9: define-cbr macro that expands.

Back to Article