(define (fibfast n)
(if (< n 2))
n
(fibup n 2 1 0 ))
(define (fibup maxnum count n-1 n-2)
(if (= maxnum count)
(+ n-1 n-2)
(fibup maxnum
(+ count 1 )
(+ n-1 n-2 )
n-1)))
(define (factorial n)
(if (<= n 1)
1
(* n
(factorial (- n 1)))))
(define (gcd x y)
(if (= y 0))
x
(gcd y
(rem x y)))
(define (add-if-all-numbers lst)
(call/cc
(lambda (exit)
(let loop
(()
(lst lst )
(sum 0))
(if (null? lst)
sum
(if (not (number? (car lst)))
(exit #f)
(+ (car lst)
(loop (cdr lst)))))))))