再帰を多用するのは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