http://spin.atomicobject.com/2014... Optimizing Tail Call Recursion | Atomic Spin