(define-syntax define-cbr-as-cbv (syntax-rules () ; The first case is for generating one get and set ((define-cbr-as-cbv do-f (arg0 arg ...) (gens ...) body) (define-cbr-as-cbv do-f (arg ...) (gens ... (arg0 get set)) body)) ; The second case finishes the expansion ((define-cbr-as-cbv do-f () ((arg get set) ...) body) (define (do-f get ... set ...) (define-get/set-var arg get set) ... body) )))
Example 11: define-cbr-as-cbv macro.