gcd関数を再定義しつつ、
それをletを使ってもう一度再定義する
;; 何度もgcd*を呼び出すのはすっきりしない (defun gcd* (x y) (if (= (mod x y) 0) y (gcd* y (mod x y)))) (print (gcd* 10 8)) ;; 2 (defun gcd** (x y) (let ((r (mod x y))) (if (= r 0) y (gcd** y r)))) (print (gcd** 10 8)) ;; 2
gcd関数を再定義しつつ、
それをletを使ってもう一度再定義する
;; 何度もgcd*を呼び出すのはすっきりしない (defun gcd* (x y) (if (= (mod x y) 0) y (gcd* y (mod x y)))) (print (gcd* 10 8)) ;; 2 (defun gcd** (x y) (let ((r (mod x y))) (if (= r 0) y (gcd** y r)))) (print (gcd** 10 8)) ;; 2