| From: Chongkai Zhu (czhu at cs.utah.edu) Date: Sun May 3 10:53:21 EDT 2009 |
|
Michele Simionato wrote:
> (define-syntax define+
> (lambda (x)
> (syntax-case x ()
> ((define+ name value)
> #'(begin
> ;; dirty trick to get an expand time side effect
> (define-syntax dummy (begin (register #'name) (lambda (x) #f)))
> ;; the real definition
> (define name value))))))
>
Why the dirty trick? This works:
(define-syntax define+
(lambda (x)
(syntax-case x ()
((define+ name value)
(begin (register #'name)
#'(define name value))))))
| Posted on the users mailing list. |
|