这段 Clojure 代码有什么作用?
(ns utils
(:gen-class :name Utils
:methods [#^{:static true} [sum [java.util.Collection] long]]))
(defn sum [coll] (reduce + coll))
(defn -sum [coll] (sum coll))
请解释一下这段代码!
(ns utils
(:gen-class :name Utils
:methods [#^{:static true} [sum [java.util.Collection] long]]))
(defn sum [coll] (reduce + coll))
(defn -sum [coll] (sum coll))
Please explain this code!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于没有使用 Clojure gen-class 工具,我的答案可能有点模糊:
这将生成必要的字节码,该字节码大约相当于以下 Java 伪代码:
-sum
指示 Clojure 生成Java 方法。(sum coll)
是对sum
第一个定义的调用,它只是一个常规的 Clojure 函数定义Having not used the Clojure gen-class facilities, my answer might be a little fuzzy:
This will generate the necessary byte-code which is about equivilant to the following Java pseudo code:
-sum
instructs Clojure to generate the Java method.(sum coll)
is the call to the first definition ofsum
, which is just a regular Clojure function definition