(define (pow1 a b) (if (zero? b) 1 (* a (pow1 a (- b 1))))) (define (square x) (* x x)) (define (pow2 a b) (if (zero? b) 1 (if (even? b) (square (pow2 a (/ b 2))) (* a (pow2 a (- b 1)))))) (define (pow3 a b) (cond ((zero? b) 1) ((even? b) (square (pow3 a (/ b 2)))) (else (* a (pow3 a (- b 1)))))) (define x (list 2 3 4 5)) (define (list-sum z) (if (null? z) 0 (+ (car z) (list-sum (cdr z))))) (define (find-largest z) (if (null? (cdr z)) (car z) (if (> (car z) (find-largest (cdr z))) (car z) (find-largest (cdr z)))))