SICP FactorialをClojureで実装してみた
またまた階乗です。ヲレはこの手のコードはデフォルトiterate使って 遅延シーケンスつくるです。
(take 10 (iterate (fn[[a b]][(* a b) (inc b)]) [1 2]))
Clojureだと末尾最適化が?なのではありますがコーンなコードでいかがでしょうか。
(defn fact-iter [product counter max-count]
(if (> counter max-count)
product
(recur (* counter product)
(inc counter )
max-count))
)
(defn factorial [n]
(fact-iter 1 1 n))
(factorial 6)