Example: SET-TO-ONE
Takes any number of arguments, which must be symbols, and gives each the value 1.
> (define-macro (set-to-one . symbols)
(map (lambda (s) (list 'set! s 1))
> (macroexpand '(set-to-one x y z))
(BEGIN (SET! X 1) (SET! Y 1) (SET! Z 1))