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
<b>(a)</b>
(define-get/set-var clock get-time set-time!)
(define-get/set-var pwd getcwd setcwd)
(define-get/set-var user getuid setuid)
...
<b>(b)</b>
(define-syntax define-get/set-var
(syntax-rules ()
((define-get/set-var id get set)
(define-syntax id
(syntax-id-rules (set!)
((set! id e) (set e))
((id a (... ...)) ((get) a (... ...)))
(id (get))))])))
Example 7: Macro-generating macros.