(define (divide a b) (define (iter a b product) (cond ((= a 0) product) ((< a 0) (- product 1)) (else (iter (- a b) b (+ product 1))))) (iter a b 0)) ; divide (define (halve a) (divide a 2)) (define (double a) (+ a a)) (define (multiply a b) (define (iter a b product) (cond ((= a 1) (+ product b)) ((even? a) (iter (halve a) (double b) product)) (else (iter (halve a) (double b) (+ product b))))) (iter a b 0)) ; multiply (multiply 132 555) (multiply 32 2) (multiply 33 1)