Introduction To Recursion & The Call Stack
Clint Maruti
Posted on November 13, 2019
What is Recursion?
Recursion is when a function calls itself.
Syntax:
function func(){
if(/*base case*/){
return something
} else { // recusive case
func()
}
}
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
}
}
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:
- factorial(4) => 4
- factorial(3) => 3
- factorial(2) => 2
- 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!
Posted on November 13, 2019
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.