我正在学习Clojure并使用Clojure 1.5.1。似乎Clojure 1.5.1不再具有defnk宏。那么,在Clojure 1.5.1中,defnk的等价物是什么?
答案 0 :(得分:7)
defnk
曾经居住在clojure-contrib中,但当clojure-contrib被分割成多个包时,没有跳转到新的包中。
您可以自己使用defnk
/ :keys
来为函数参数创建默认值,而不是:or
,所以
(defnk f [:b 43] (inc b))
变为
(defn f [& {:keys [b] :or {b 1}}] (inc b))
如果你不喜欢这种方式,那么没有什么能阻止你自己使用defnk
的{{3}}并自行使用它。