(a)
(define-get/set-var clock get-time set-time!)
(define-get/set-var pwd getcwd setcwd)
(define-get/set-var user getuid setuid)
 ...

(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.

Back to Article