我有一个需要身体的宏:
(defmacro blah [& body] (dostuffwithbody))
但我也想为它添加一个可选的关键字参数,所以当它被调用时,它可能看起来像以下任何一种:
(blah :specialthingy 0 body morebody lotsofbody)
(blah body morebody lotsofboy)
我怎样才能做到这一点?请注意,我使用的是 Clojure 1.2,因此我还使用了新的可选关键字参数解构内容。我天真地尝试这样做:
(defmacro blah [& {specialthingy :specialthingy} & body])
但显然这并没有奏效。我怎样才能完成这个或类似的事情?