; Both of these are recursive procedures. One of them uses a recursive process,
; the other one uses an iterative process. Both v1 and v2 compute a * 2^n.
; Discuss with your partner which function uses which process. Also, what
; is the order of growth in terms of time of version 1? What is the order of
; growth in terms of time for version 2? Are the orders of growth the same
; in terms of memory used? Justify your answers.
(define (v1 a n) (cond ((= n 0) a) (else (v1 (* 2 a) (- n 1))))) (define (v2 a n) (cond ((= n 0) a) (else (* 2 (v2 a (- n 1))))))