Dans Guile ou en utilisant SRFI-46, il est possible comme montré dans Specifying a Custom Ellipsis Identifier. Mais est-ce possible dans SISC ou "schéma pur" R5RS?Comment créer une macro qui génère une autre macro dans SISC/Scheme?
Je sais que c'est possible sans ellipse, mais que se passe-t-il si j'ai besoin d'ellipses intérieures comme l'exemple ci-dessous?
(define-syntax define-quotation-macros
(syntax-rules()
((_ (macro-name head-symbol) ...)
(begin (define-syntax macro-name
(syntax-rules :::()
((_ x :::)
(quote (head-symbol x :::)))))
...))))
(define-quotation-macros (quote-a a) (quote-b b) (quote-c c))
(quote-a 1 2 3) ⇒ (a 1 2 3)