再帰を多用するのはLisp使いが多いかもしれないが非常に有用です。
このコードは例外処理とかしてません。ただの例ですので。
最大公約数(GCD)の計算
Emacs Lisp
(defun my-gcd (x y)
(if (= y 0) x
(my-gcd y (% x y))))
;; 実行
(my-gcd 24 9)
Python
def gcd (x, y):
if y == 0:
print x
else:
gcd (y, x % y)
gcd (24, 9)
Java
private int getGcd(int x,int y) {
if (y == 0) {
return x;
}
else {
return getGcd(y, x % y);
}
}
この他にも再帰としてはフィボナッチ数列の例や、文字列の反転の例などが記述される事が多いようです。
どれも基本の考え方は同じです。
アルゴリズム CategoryEmacs CategoryJava CategoryPython CategoryUnix
