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