20 ŞUBAT 2011, Pazar
Nasıl clojure içinde üs yapmak için?
Nasıl clojure içinde üs yapabilir miyim? Şimdilik sadece tamsayı üs ihtiyacım var, ama soru kesirler için de geçerli.
CEVAP
20 ŞUBAT 2011, Pazar
özyineleme (bu, patlar yığın izle) klasik
(defn exp [x n]
(if (zero? n) 1
(* x (exp x (dec n)))))
kuyruk özyineleme
(defn exp [x n]
(loop [acc 1 n n]
(if (zero? n) acc
(recur (* x acc) (dec n)))))
fonksiyonel
(defn exp [x n]
(reduce * (repeat n x)))
sinsi (darbeler yığını, ama o kadar kolay)
(defn exp-s [x n]
(let [square (fn[x] (* x x))]
(cond (zero? n) 1
(even? n) (square (exp-s x (/ n 2)))
:else (* x (exp-s x (dec n))))))
kütüphane
(require 'clojure.contrib.math)
Bunu Paylaş:
Nasıl belirli bir dize için depodaki G...
Nasıl Clojure içinde işlev bağımsız de...
Nasıl içinde yüzen edilirken div yükse...
Nasıl objective-c / cocoa içinde modül...
nasıl bir dıv iki şamandıra divs içind...