> (define-syntax def (syntax-rules () [(_ name val) (begin (define tmp val) ;;; this should be fresh (define (name) tmp))])) > (def x 12) > (x) 12 > (def y 13) > (y) 13 > (x) 13 ;;; should be 12 >
> (define-syntax def
(syntax-rules ()
[(_ name val)
(begin
(define tmp val) ;;; this should be fresh
(define (name) tmp))]))
> (def x 12)
> (x)
12
> (def y 13)
> (y)
13
> (x)
13 ;;; should be 12
>