To be noted: the drawing in exercise 1.14 is unfinished. I did it in a notebook, but haven't yet had the time to put it in a txt file.
17 lines
475 B
Scheme
17 lines
475 B
Scheme
#lang sicp
|
|
|
|
(define (fib n)
|
|
(fib-iter 1 0 0 1 n))
|
|
(define (fib-iter a b p q count)
|
|
(cond ((= count 0) b)
|
|
((even? count)
|
|
(fib-iter a
|
|
b
|
|
(+ (* p p) (* q q))
|
|
(+ (* 2 p q) (* q q))
|
|
(/ count 2)))
|
|
(else (fib-iter (+ (* b q) (* a q) (* a p))
|
|
(+ (* b p) (* a q))
|
|
p
|
|
q
|
|
(- count 1)))))
|