末尾再帰でループみたいなことが出来るのは分かったけど
結局そのソースが吐き出すコードってループになってるんですよね?
なんのために再帰にこだわるのか私には謎。