;; iterative version of sum (define sum (lambda (num-list) (define iter (lambda (lst result) (if (null? lst) result (iter (cdr lst) (+ (car lst) result))))) (iter num-list 0))) (define infinity (/ 1.0 0.0)) ;; iterative version of minimum (define minimum (lambda (num-list) (cond ((null? num-list) infinity) ((null? (cdr num-list)) (car num-list)) ((< (car num-list) (cadr num-list)) (minimum (cons (car num-list) (cddr num-list)))) (else (minimum (cdr num-list))))))