Welcome to the CHICKEN Scheme pasting service
define-handler pasted by hanDerPeder on Tue Nov 25 14:22:20 2014
(define-syntax define-handler
(ir-macro-transformer
(lambda (x e t)
(let ((path (e (cadr x)))
(body (caddr x))
(rest (cdddr x)))
(if (pair? rest) (error "illegal define-handler" x))
(if (not (equal? (substring (conc (symbol->string path) " ") 0 4)
"/v1/"))
(error "path must start with /v1/" path))
`(begin
(define ,path ,body)
(set-handler! ,(symbol->string path) ,path))))))
Try this added by sjamaan on Tue Nov 25 14:23:57 2014
(define-syntax define-handler
(ir-macro-transformer
(lambda (x i t)
(let ((path (strip-syntax (cadr x)))
(body (caddr x))
(rest (cdddr x)))
(if (pair? rest) (error "illegal define-handler" x))
(if (not (equal? (substring (conc (symbol->string path) " ") 0 4)
"/v1/"))
(error "path must start with /v1/" path))
`(begin
(define ,(i path) ,body)
(set-handler! ,(symbol->string path) ,path))))))