再帰関数はストァックオーバーフロゥが起こる可能性があり、
厳格なProgrameでは再帰関数を使用せず、ストァック アブジェクト
等を使用するべきでしょうか?