Hatena::Groupcsnagoya-sicp

toyoshiのSICP宿題帖

 | 

2008-11-18

1.18 乗算の反復的プロセス

| 05:17 | はてなブックマーク - 1.18 乗算の反復的プロセス - toyoshiのSICP宿題帖

id:clairvyさんのと少し違うけど、たぶんこれも反復的になってるはず。

なんとか一人で考えられてほっとした

(define (* a b)
  (*-iter a b a))

(define (*-iter product b a)
  (cond ((= b 1) product)
	((even? b) (*-iter (+ a product) (halve b) (double a)))
	(else (*-iter (+ a product) (- b 1) a))))


(define (even? n)
  (= (remainder n 2) 0))

(define (double x)
  (+ x x))

(define (halve x)
  (/ x 2))

clairvyclairvy2008/11/19 06:13product + (b x a) が不変量だとすると.
(a + product) + {(b / 2) x (a x 2)} と,
(a + product) + {(b - 1) x a} は,両方とも不変量?
それともただのtypo?

 |