(define approximate-golden-ratio
(lambda (tolerance)
(define find-approximation-from
(lambda (starting-point)
(if (good-enough? starting-point)
starting-point
(find-approximation-from (improve starting-point)))))
(define good-enough?
(lambda (approximation)
(< (/ 1 (square (denominator approximation)))
tolerance)))
(find-approximation-from 1)))
> (approximate-golden-ratio 1/50000)
1 144/233