問題1.17

僕の解答

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

(define (double n)
	(* n 2))

(define (halve n)
	(/ n 2))

(define (times a b)
	(cond ((= b 0) 0)
	      ((even? b)
	       (times (double a) (halve b)))
	      (else
	       (+ a (times a (- b 1))))))

こんな感じかな?

所感

doubleの位置が違うなぁ。でも、同じ結果になるのは掛け算だからかな?