未だに再帰がよく理解しきれていない若輩者なのですが・・・ 研究の気分転換に少し再帰を勉強する。 Algorithms with Python / 再帰定義 で、再帰の何が分かってないかよく分かっていなかったかだけど、根本的に再帰の動作が分かっていませんでした。 そのために、普通の再帰と末尾再帰の違いがよく分かっていなかったというしょうもない罠でした。 再帰呼び出しのあとに「後に続く処理」がなければ、情報を保存する必要がなくなるわけだ。 こういう呼び出しが「末尾呼び出し」であり、再帰呼び出しすべてが末尾呼び出しであれば「末尾再帰関数」というらしい。 http://http://d.hatena.ne.jp/jyukutyo/20081111/1226368924 実にわかりやすい解説だ。 というわけで、フィボナッチ数列を求めるプログラムの時間を計測してみる。 http://hamasta.g