Le 08/01/2023 à 10:46, yarl baudig a écrit :
What if I replace(define-syntax define-enumerate-type (syntax-rules () ((_ name->int (name id) ...) (define-syntax name->int (syntax-rules (name ...) ((_ name) id) ...))))) with (define-syntax define-enumerate-type (syntax-rules () ((_ name->int (name id) ...) (define-syntax name->int (syntax-rules () ((_ name) id) ...))))) ?
Not going to work. (define-syntax define-enumerate-type (syntax-rules () ((_ name->int (name id) ...) (define-syntax name->int (syntax-rules () ((_ name) id) ...))))) (define-enumerate-type my-enum (member1 1) (member2 2)) (my-enum member2) ⇒ 1 The define-enumerate-type invocation expands to (define-syntax my-enum (syntax-rules () ((_ member1) 1) ((_ member2) 2))) and since member1 is not declared as a literal in the first argument to syntax-rules, it matches anything.
OpenPGP_signature
Description: OpenPGP digital signature