DEV Community

Clint Maruti
Clint Maruti

Posted on

10 5

Introduction To Recursion & The Call Stack

What is Recursion?

Recursion is when a function calls itself.

Syntax:

function func(){
   if(/*base case*/){
      return something  
   } else { // recusive case
      func()
   }
}
Enter fullscreen mode Exit fullscreen mode

Example

Let's write a function that returns the factorial of a number passed in as argument.

The factorial of a number is that number multiplied by every number from itself down to one.

4! = 4 * 3 * 2 * 1 = 24
3! = 3 * 2 * 1 = 6

function factorial(num){
   if (num === 1) { // The factorial of 1 is 1 so our base case is set
      return num;
   } else {
      return num * factorial(num -1) // Recursive case 
   }
}
Enter fullscreen mode Exit fullscreen mode

The best way to understand this is by going through the function step by step. To visualize, we will use a Call stack. Please click here if you don't know what a call stack is before proceeding.

TL;DR
Call Stack represents what order the functions are being called in and what variables they are being called with.

Order:

  1. factorial(4) => 4
  2. factorial(3) => 3
  3. factorial(2) => 2
  4. factorial(1) => 1 * (1-1) = 1 = base case

4 * 3 * 2 * 1 = 24

Okay, I know for those who are not acquainted with recursion may find this cumbersome. I urge you to read more about it.

But the baseline is, a recursive function will continue to call itself until the base case is fulfilled!

See you in the next one!

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay