(a) #define swap(...) ... (b) (define-syntax swap (syntax-rules ... ...)) (c) (define-syntax swap (syntax-rules () ((swap a b) (let ((tmp b)) (set! b a) (set! a tmp)))))