(defn cont-frac [N D k] (defn iter [prev i] (if (>= i k) prev (cond (= i 1) (iter (/ (N (- k i)) (D (- k i))) (+ i 1)) (iter (/ (N (- k i)) (+ (D (- k i)) prev)) (+ i 1))))) (iter 0 1)) (defn identity [i] 1.0) (defn D [i] (let [n (+ i 1)] (cond (= (mod n 3) 0) (* (/ n 3) 2) 1.0))) (print (+ 2 (cont-frac identity D 100)))