この質問はこれと密接に関連していますが、もっと一般的だと思います。
最近、メタデータタグに基づいて、マルチメソッド(または可能であれば一意の関数コンストラクター)を使用して、その場でタイプ「インスタンス」を作成しようとしています。タイプ(内部のJavaクラス)をこのタグにリンクしましたが、エレガントな方法で続行する方法がわかりませんでした(evalまたはjavaリフレクションと文字列なし)。newは特殊な形式であり、マクロを使用しても処理が困難です。
疑似コードでは、次のようになります。
(def my-tagged-data (with-meta my-data {:my-type-tag my-ns.My-Type}))
(def factory-function [tagged-data]
(create (:my-type-tag (meta tagged-data)) tagged-data))