# SICP - Solution: Exercise 1.39

## Oct 29, 2018 06:03 · 141 words · 1 minute read

Exercise 1.39: A continued fraction representation of the tangent function was published in 1770 by the German mathematician J.H. Lambert:

$$\tan\;x=\frac x{1-{\displaystyle\frac{x^2}{3-{\displaystyle\frac{x^2}{5-\cdots}}}}}$$

where x is in radians. Define a procedure (tan-cf x k) that computes an approximation to the tangent function based on Lambert’s formula. k specifies the number of terms to compute, as in Exercise 1.37.

Solution

From what is already done, the solution is:

(define (cont-frac-iter n d k)
(define (iter i result)
(if (= 0 i)
result
(iter (sub1 i) (/ (n i) (+ result (d i))))))
(iter (sub1 k) (/ (n k) (d k))))

(define (tan-cf x k)
(cont-frac-iter
(lambda (i) (if (= i 1) x (* x x -1)))
(lambda (i) (- (* 2.0 i) 1))
k))

; check result
(define x 1)
(display (tan-cf x 8)) (newline)
(display (tan x)) (newline)


Which returns:

1.557407724654856
1.557407724654902