末尾再帰になっており、かつ末尾最適化
される言語においてはループに変換される。

そのような最適化を行わないでコードのとおりに
実行すればスタックオーバーフローになる。