Clojure 1.5.1中缺少defnk

时间:2014-04-29 13:28:57

标签: clojure

我正在学习Clojure并使用Clojure 1.5.1。似乎Clojure 1.5.1不再具有defnk宏。那么,在Clojure 1.5.1中,defnk的等价物是什么?

1 个答案:

答案 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}}并自行使用它。