clj-timeライブラリの関数を使用するマクロを作成します。 1つの名前空間では私はこのようなマクロを呼び出すしたいと思います:名前空間の混乱とマクロ
(ns budget.account
(:require [budget.time]))
(budget.time/next-date interval frequency)
次の日のマクロは、このような別のファイルに定義されます:マクロは、次の引数で呼び出された場合
(ns budget.time
(:require [clj-time.core :as date]))
(defmacro next-date [interval freq]
`(~interval ~freq))
(budget.time/next-date interval freq)とintervalとfreqここで、「週」と「2」はそれぞれマクロ展開と同じです(clj-time.core/weeks 2)
私が試したときはいつでもこれはREPLからネームスペースを解決できません。
マクロにclj-time名前空間の引数の間隔を解決させる方法はありますか?これを行う最善の方法は何ですか?
ありがとうございます!
マクロを書く必要があるのはなぜですか。これは通常の機能ではできませんでしたか?覚えておいて欲しいのは、関数の実行時にマクロを書くべきではないということです。 – viebel