A useful term when understanding tail recursion is "trampoline"[1], even though most compilers don't use this, it is a very useful way of visualising tail recursive calls.<p>[1] - <a href="https://en.wikipedia.org/wiki/Tail_call#Through_trampolining" rel="nofollow">https://en.wikipedia.org/wiki/Tail_call#Through_trampolining</a>