JS Coding Questions Logo
JS Coding Questions
#414💼 Interview💻 Code

What is a Proper Tail Call

Advertisement

728x90

First, we should know about tail call before talking about "Proper Tail Call". A tail call is a subroutine or function call performed as the final action of a calling function. Whereas Proper tail call(PTC) is a technique where the program or code will not create additional stack frames for a recursion when the function call is a tail call.

For example, the below classic or head recursion of factorial function relies on stack for each step. Each step need to be processed upto n * factorial(n - 1)

javascript
1function factorial(n) {
2
3if (n === 0) {
4  return 1;
5}
6
7return n * factorial(n - 1);
8}
9
10console.log(factorial(5)); //120

But if you use Tail recursion functions, they keep passing all the necessary data it needs down the recursion without relying on the stack.

javascript
1function factorial(n, acc = 1) {
2
3if (n === 0) {
4  return acc;
5}
6
7return factorial(n - 1, n * acc);
8}
9
10console.log(factorial(5)); //120

The above pattern returns the same output as the first one. But the accumulator keeps track of total as an argument without using stack memory on recursive calls.

Advertisement

Responsive Ad
🎯 Practice NowRelated Challenge

JavaScript Coding Exercise 71

Test your knowledge with this interactive coding challenge.

Start Coding

Advertisement

728x90
414of476