2

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

(def- add2 (partial + 2) )

或 (defn-my-function...)

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

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

4

1 回答 1

9

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

看一下defn- 的来源。此宏计算为对defn{:private true}合并到元数据散列中的调用。

于 2013-01-13T14:45:48.640 回答