SICP問題1.17
とりあえず必要そうな手続きを定義。
(define (square n) (* n n)) (define (double n) (+ n n)) (define (halve n) (/ n 2)) (define (even? n) (= (remainder n 2) 0))
答え
(define (my-* x y) (cond ((= y 0) 0) ((even? y) (double (my-* x (halve y)))) (else (+ x (my-* x (- y 1))))) )