(defn function-name)和clojure中的defn- function-name有什么区别?

Lia*_*yan 2 clojure

谁可以给我解释一下这个?我想我明白(defn -main)声明了一个可以被Java识别的主方法,并且如果你将它与带有(:gen-class)的命名空间一起使用,你可以欺骗Java认为clojure是面向对象的但是,如果你只是创建一个函数,我无法弄清楚目的是什么

(def-add2(部分+ 2))

或(定义我的功能......)

如果上述假设是错误的,任何人都可以简单地解释这个或纠正我吗?

**编辑 - 我理解部分函数的作用:)我只是想知道上面和(def add2(partial + 2)之间是否有区别)

Jan*_*Jan 9

定义的函数defn-不能在它们定义的命名空间之外访问.换句话说,它们是私有的.

看看defn-来源.此宏评估为defn{:private true}合并到元数据哈希中的调用.