LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

Какие формы надо изучать, чтобы писать такое на гигиенических макросах?

syntax-case

(define-syntax define-handler
  (lambda (x)
    (syntax-case x ()
      ((_ name (code-options ...) code ...)
       (with-syntax ((binds (datum->syntax x (handle-code-options #'(code-options ...))))
         #'(let binds code ...))))))

Исходная версия monk, :

Какие формы надо изучать, чтобы писать такое на гигиенических макросах?

syntax-case

(define-syntax define-handler
  (lambda (x)
    (syntax-case x ()
      ((_ name (code-options ...) code ...)
       (with-syntax ((binds (datum->syntax x (handle-code-options #'(code-options ...))))
         #'(let binds #,@code))))))