このマクロを関数として書く(合理的な)方法はありますか?
(defmacro assocTop
[v & args]
`(push (pop ~v)
(assoc (peek ~v) ~@args)))
マップのベクトルといくつかの関連付けが与えられると、マクロコードは関連付けをトップ/ピークマップに適用します。
しかし、それを関数として書き込もうとすると~@args
、正当な方法でを拡張する方法がわかりません。通常の関数では、フォームをargs
持っていると私が信じている、つまり、parensなしに変換する方法はありますか?(:a 3 :bb 44 :cd 90,...)
:a 3 :bb 44 :cd 90,...