(5am:test exercise-1.18
(5am:is (= 0 (multi 1 0)))
(5am:is (= 6 (multi 2 3)))
(5am:is (= (multi 4 5)
(multi 5 4))))
(defun double (x)
(* x 2))
(defun halve (x)
(/ x 2))
(defun multi-iter (a b r)
(cond ((zerop b) r)
((evenp b) (multi-iter (double a) (halve b) r))
(t (multi-iter a (1- b) (+ r a)))))
(defun multi (a b)
(multi-iter a b 0))
完全に1.16の復習。
返信削除