私は一連の名前空間シンボルを持っています:
(def namespace-symbols (namespace-1 namespace-2 namespace-3))
そして、それぞれに対してまったく同じメソッド(たとえば、 )を呼び出したいと思いrun
ます。
(map #{%/run} namespace-symbols)
動作しません。
私も試しました
(defmacro namespace-run
[namespace]
`(~(identity namespace)/run))
これも機能しません。これを行う方法はありますか?
アップデート:
最終的に以下のようなマクロを思いつきました。
(defmacro namespace-run
[namespace]
`(~(symbol (str namespace "/run"))))
(macroexpand-1 '(namespace-run foobar))
;=> (foobar/run)
確かにこれを行うためのより良い方法はありますか?