有人可以向我解释一下吗?我想我明白(defn -main)声明了一个可以被Java识别的主方法,并且如果你将它与带有(:gen-class)的命名空间一起使用,你可以欺骗Java认为clojure是面向对象的但是,如果你只是创建一个像
这样的函数,我无法弄清楚目的是什么(def- add2 (部分+ 2) )
或(defn-my-function ...)
如果上述假设错误,任何人都可以简单地解释一下或纠正我吗?
**编辑 - 我理解部分函数的作用:)我只是想知道上面和(def add2(partial + 2))之间是否存在差异
答案 0 :(得分:9)
使用defn-
定义的函数无法在定义它们的命名空间之外访问。换句话说,它们是私有。
看看source of defn-。此宏评估为defn
的调用,并将{:private true}
合并到元数据哈希中。