(define (fib n) (if (< n 2) 1 (+ (fib (- n 1)) (fib (- n 2))))) (define (counting-fib n) (let ((counter (vector 0))) (let kernel ((n n)) (vector-set! counter 0 (+ 1 (vector-ref counter 0))) (if (< n 2) 1 (+ (kernel (- n 1)) (kernel (- n 2))))) (vector-ref counter 0)))