SCIP 1.17

	
(defun squre(x)
 (* x x))


(defun even?(x)
  (= (mod x 2) 0))


(defun doublef(x)
  (+ x x))


(defun half(x)
  (/ x 2))



;ex1.17
;a*b
;1, b is 0         0
;2, b is even      (2a)*(b/2)
;3, b is odd       a+(a*(b-1))

(defun multiply-recursive(a b)
  (cond ( (= b 0)  0)
	( (even? b)  (multiply (doublef a)
			       (half b)))
	( (+ a
	     (multiply a
		       (- b 1))))))




  
Edit in Emacs with Slime and Steel Bank Common Lisp.