If an argument calls itself as its last action, the function's stack frame can be reused. This is called tail recursion. These are iterative processes and executive much like a loop.
However, if we have a function such as factorial(n) that calls n*factorial(n-1) last, it does not act as a tail recursive function.
It's best to refactor a function so that it is tail recursive because the JVM will only allow about 1000 stack frames to be used.
No comments:
Post a Comment