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)