История изменений
Исправление monk, (текущая версия) :
В общем случае (для любой Scheme)
(define-syntax (some-shit stx)
(syntax-case (stx)
[(some-shit a b)
#`((lambda()
(define #,(datum->syntax stx 'proc1) "ok")
(define #,(datum->syntax stx 'proc2) "ok2")
(a b)))]))
Или (для Racket)
(define-syntax (some-shit stx)
(syntax-case (stx)
[(some-shit a b)
(with-syntax ([proc1 (syntax-local-introduce #'proc1)]
[proc2 (syntax-local-introduce #'proc2)])
#`((lambda()
(define proc1 "ok")
(define proc2 "ok2")
(a b))))])
Исходная версия monk, :
В общем случае (для любой Scheme)
(define-syntax (some-shit stx)
(syntax-case (stx)
[(some-shit a b)
#`((lambda()
(define #,(datum->syntax stx 'proc1) "ok")
(define #,(datum->syntax stx 'proc2) "ok2")
(a b)))]))
Или (для Racket)
(define-syntax (some-shit stx)
(syntax-case (stx)
[(some-shit a b)
(with-syntax ([proc1 (syntax-local-introdice #'proc1)]
[proc2 (syntax-local-introdice #'proc2)])
#`((lambda()
(define proc1 "ok")
(define proc2 "ok2")
(a b))))])