>
> Not going to work.
> , it matches anything.
>
>
Obviously...
Ok, I tried more.
Apparently,
(define-syntax define-enumerate-type
(syntax-rules ()
((_ name->int (name id) ...)
(define-syntax name->int
(syntax-rules (name ...)
((_ name) id) ...)))))
works the same as
(define-syntax define-enumerate-type
(syntax-rules ()
((_ name->int (name id) ...)
(define-syntax name->int
(lambda (x)
(syntax-case x ()
((_ n) (free-identifier=? #'name #'n) #'id) ...))))))
. Now what about
(define-syntax define-enumerate-type
(syntax-rules ()
((_ name->int (name id) ...)
(define-syntax name->int
(lambda (x)
(syntax-case x ()
((_ n) (equal?
(syntax->datum #'name)
(syntax->datum #'n))
#'id) ...))))))
?