(def throws 10)
(defn r-squared [x y]
(+ (* (- 0.5 x) (- 0.5 x))
(* (- 0.5 y) (- 0.5 y))))
(loop [hits 0]
(let [x (rand)
y (rand)]
; still inside the let
(if (< (r-squared x y) 0.25) ;is it a hit or not? if not, try again
(recur (inc hits))
(* 4 (/ hits throws)))))
我得到了代碼工作和運行,直到if條件爲真。我該如何重寫它,以便將X作爲參數並運行X次?把clojure代碼放在一個循環中
我基本上想打電話給(r-squared 100),並得到多少點擊作爲返回值。
我怎麼及時把這個包來獲得exeuction時間? – peter 2010-09-19 22:56:02
包裝你的電話及時測試。 '(時間(測試100))' – Rayne 2010-09-19 23:05:41
代碼永遠不會改變n的值。這相當於海報初始代碼,對於任何大於0的n。 – 2010-09-20 09:52:34