Blame


1 665c255d 2023-08-04 jrmu (defun cont-frac (n d k)
2 665c255d 2023-08-04 jrmu (labels (
3 665c255d 2023-08-04 jrmu (frac (i)
4 665c255d 2023-08-04 jrmu (/ (funcall n i)
5 665c255d 2023-08-04 jrmu (+ (funcall d i)
6 665c255d 2023-08-04 jrmu (if (= i k)
7 665c255d 2023-08-04 jrmu 0
8 665c255d 2023-08-04 jrmu (frac (1+ i)))))))
9 665c255d 2023-08-04 jrmu (frac 1)))
10 665c255d 2023-08-04 jrmu
11 665c255d 2023-08-04 jrmu (defun cont-frac-iter (n d k)
12 665c255d 2023-08-04 jrmu (labels (
13 665c255d 2023-08-04 jrmu (frac-iter (i result)
14 665c255d 2023-08-04 jrmu (if (= i 0)
15 665c255d 2023-08-04 jrmu result
16 665c255d 2023-08-04 jrmu (frac-iter
17 665c255d 2023-08-04 jrmu (1- i)
18 665c255d 2023-08-04 jrmu (/ (funcall n i)
19 665c255d 2023-08-04 jrmu (+ (funcall d i) result))))))
20 665c255d 2023-08-04 jrmu (frac-iter k 0)))
21 665c255d 2023-08-04 jrmu
22 665c255d 2023-08-04 jrmu (print
23 665c255d 2023-08-04 jrmu (cont-frac
24 665c255d 2023-08-04 jrmu (lambda (i) 1.0)
25 665c255d 2023-08-04 jrmu (lambda (i)
26 665c255d 2023-08-04 jrmu (let ((i+1 (1+ i)))
27 665c255d 2023-08-04 jrmu (if (= (rem i+1 3) 0)
28 665c255d 2023-08-04 jrmu (* 2.0 (/ i+1 3))
29 665c255d 2023-08-04 jrmu 1.0)))
30 665c255d 2023-08-04 jrmu 10))