1

Clojure で簡単な階乗プログラムを作成します。

(defn fac [x y] 
     (if (= x 1) y (recur (- x 1) (* y x)))
)

(def fact [n] (fac n 1))

どうすればもっと速くできますか?それがより速い方法で行うことができれば。

4

3 に答える 3

2

これが私のお気に入りです:

(defn fact [n] (reduce *' (range 1 (inc n))))

' は、Clojure に BigInteger を透過的に使用してオーバーフローを回避するように指示します。

于 2013-10-01T10:04:45.990 に答える