(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