Blob


1 (define (fib n)
2 (fib-iter 1 0 0 1 n))
3 (define (fib-iter a b p q count)
4 (cond ((= count 0) b)
5 ((even? count) (fib-iter a
6 b
7 (+ (* 2 q p) (square q))
8 (+ (square q) (square p))
9 (/ count 2)))
10 (else (fib-iter (+ (