| trampoline-candidates.scm - A few functions - to be trampolined below. | Lecture 3 - slide 42 : 43 Program 1 |
(define (fact-iter n acc)
(if (zero? n)
acc
(fact-iter
(- n 1)
(* acc n))))
(define (mem? n lst)
(cond ((null? lst) #f)
((= (car lst ) n) #t)
(else (mem? n (cdr lst)))))
(define (fib n)
(fib-iter n 0 0 1))
(define (fib-iter n i small large)
(if (< i n)
(fib-iter n (+ i 1) large (+ large small))
small))
; > (fact-iter 5 1)
; 120
; > (mem? 5 (list 1 2 3 4 5 6))
; #t
; > (fib 8)
; 21