tengo una macro que toma un cuerpo:¿Cómo puedo mezclar argumentos de palabra clave opcionales con & cosas de descanso?
(defmacro blah [& body] (dostuffwithbody))
Pero me gustaría añadir un argumento palabra clave opcional a él también, así que cuando lo llamó podría parecerse a cualquiera de éstos:
(blah :specialthingy 0 body morebody lotsofbody)
(blah body morebody lotsofboy)
¿Cómo puedo hacer eso? Tenga en cuenta que estoy usando Clojure 1.2, así que también estoy usando el nuevo argumento de palabra clave para desestructurar cosas. Intenté ingenuamente hacer esto:
(defmacro blah [& {specialthingy :specialthingy} & body])
Pero obviamente eso no funcionó bien. ¿Cómo puedo lograr esto o algo similar?