blob: 900a9b66223ee238f454a467e1ffb45c9f72357c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#lang racket
(require "../../shared/chapter1.rkt")
(require sicp)
;; iter up
(define (cont-frac n d k)
(define (iter result i)
(if (= i 0)
result
(iter
(/ (n i) (+ (d i) result))
(dec i))))
(iter 0 k))
;; test
(define (tan-cf x k)
(cont-frac
(lambda (i)
(cond
((= i 1) x)
((> i 1) (* -1 (* x x)))
(else (error "invalid argument to cont-frac"))))
(lambda (i) (- (* 2 i) 1))
k))
(tan-cf 2.0 10)
|