J'ai une macro qui prend corps:Comment puis-je mélanger des arguments de mots-clés optionnels avec les trucs & restes?
(defmacro blah [& body] (dostuffwithbody))
Mais je voudrais ajouter un argument de mot-clé facultatif aussi bien, alors quand appelé pourrait ressembler à l'une de ces:
(blah :specialthingy 0 body morebody lotsofbody)
(blah body morebody lotsofboy)
Comment puis-je faire cela? Notez que j'utilise Clojure 1.2, donc j'utilise aussi le nouvel argument optionnel de déstructuration des mots-clés. J'ai naïvement essayé de faire ceci:
(defmacro blah [& {specialthingy :specialthingy} & body])
Mais évidemment, cela n'a pas bien fonctionné. Comment puis-je accomplir ceci ou quelque chose de similaire?