연습문제 1.17을 풀다가 얼떨결에 풀어버린.. 코드만;;
(define (double a)
(+ a a))
(define (halve a)
(/ a 2))
(define (even? n)
(= (remainder n 2) 0))
(define (fast-*-iter p a b)
(cond ((= b 0) p)
((even? b) (fast-*-iter p (double a) (halve b)))
(else (fast-*-iter (+ p a) a (- b 1)))))


덧글