Ex1.2 Powerを定義
PAIPのAnswerではexprを使っていたけど、powerの間違いかな。
ここは、O(n)の解答で。負の数にも対応したけど、小数を指定されると無限ループになる。
;;; Exercise 1.2 [m] Write a function to exponentiate, or raise a number to an integer ;;; power. For example: (power 3 2) => 3^2 => 9 (defun power (m n) (cond ((= n 0) 1) ((< n 0) (* (/ 1 m) (power m (1+ n)))) ((> n 0) (* m (power m (1- n)))))) (power 3 2) ;; => 9 (#x9, #o11, #b1001) (power 3 -2) ;; => 1/9