Building Little Languages with Macros
By Matthias Felleisen, Robert Bruce Findler, Matthew Flatt and and Shriram Krishnamurthi, April 01, 2004
Source Code Accompanies This Article. Download It Now.
Pattern-based macros in Scheme can express interesting language extensions.
Apr04: Building Little Languages With Macros
(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.