Mam makro, które pobiera ciała:Jak mogę połączyć opcjonalne argumenty ze słowem kluczowym z rzeczami & spoczynku?
(defmacro blah [& body] (dostuffwithbody))
Ale chciałbym dodać opcjonalny argument słowa kluczowego do niego, tak więc po nazwie mógłby wyglądać jeden z nich:
(blah :specialthingy 0 body morebody lotsofbody)
(blah body morebody lotsofboy)
Jak mogę to zrobić? Zauważ, że używam Clojure 1.2, więc używam również opcjonalnego argumentu polegającego na destrukcji słów kluczowych. Naiwnie próbowałem to zrobić:
(defmacro blah [& {specialthingy :specialthingy} & body])
Ale oczywiście to nie zadziałało dobrze. Jak mogę to zrobić lub coś podobnego?