(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 раз?
Я в основном хочу вызвать (r-квадрат 100) и получить, сколько хитов я получил в качестве возвращаемого значения.