racket/collects/r6rs/private/inline-rules.ss
Matthew Flatt bd97e3e797 r6rs progress
svn: r8775
2008-02-23 14:11:24 +00:00

19 lines
466 B
Scheme

#lang scheme/base
(require (for-syntax scheme/base)
(for-template scheme/base))
(provide inline-rules)
(define-syntax-rule (inline-rules orig-id [pat result] ...)
(make-set!-transformer
(lambda (stx)
(syntax-case stx (set!)
[(set! . _)
(raise-syntax-error #f
"cannot mutate"
stx)]
[pat #'result] ...
[(id . args) #'(orig-id . args)]
[id #'orig-id]))))