这个clojure代码有什么作用?

时间:2011-10-05 12:39:19

标签: 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))

请解释此代码!

1 个答案:

答案 0 :(得分:5)

没有使用Clojure的基础设施,我的回答可能有点模糊:

这将生成必要的字节代码,该字节代码与以下Java伪代码大致相同:

class Utils {
  public static long sum(Collection coll) {
    // Here goes the necessary code to call  (sum coll)
    // through the Clojure runtime
  }
}
  • -sum指示Clojure生成Java方法。
  • (sum coll)是对sum的第一个定义的调用,它只是一个常规的Clojure函数定义