Recursion from Four Semesters of Computer Science in 5 Hours by Brian Holt
Posted on August 5, 2020 in Algorithms, JavaScript by Matt Jennings
Recursive Function Definition
A recursive function is a function that calls itself until it doesn’t. And this technique is called recursion.
Stack overflow is when a function calls itself two many times for the memory available in a computer, or a function calls itself infinite times. Below is an example of stack overflow:
// In Google Chrome the error below is produced: // Uncaught RangeError: Maximum call stack size exceeded function foo() { return foo(); } foo();
Recursion example with a base case to prevent stack overflow:
function basicRecursion(max, current) { // Base case which prevents stack overflow // and if current is greater then // function stops if (current > max) return; console.log(current); basicRecursion(max, current + 1); } // Console logs off 1, 2, 3, 4, 5 basicRecursion(5,1);
Factor recursion example:
function factorial(n) { if(n < 2) return 1; return n * factorial(n - 1); } console.log(factorial(5)); /* 5 * factorial(5 - 1); 4 * factorial(4 - 1); 3 * factor(3 - 1); 2 * 1; 5 * 4 * 3 * 2 * 1; */