Add recursion article
This commit is contained in:
26
blog_posts/javascript-recursion.md
Normal file
26
blog_posts/javascript-recursion.md
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
title: What is recursion and when is it useful?
|
||||
type: question
|
||||
tags: javascript,function,recursion
|
||||
authors: chalarangelo
|
||||
cover: blog_images/curve.jpg
|
||||
excerpt: Recursion is a very important programming concept all developers should be familiar with.
|
||||
firstSeen: 2022-01-23T05:00:00-04:00
|
||||
---
|
||||
|
||||
Recursion is the repeated application of a process. In JavaScript, recursion involves functions that call themselves repeatedly until they reach a base case. The base case breaks out of the recursion loop, thus allowing previous calls to the function to return a result. If no such case exists, the function will call itself indefinitely resulting in a stack overflow.
|
||||
|
||||
Recursion is used to solve problems where the solution depends on solutions to smaller instances of the same problem. A commonly-used example of a problem that can be solved recursively is the Fibonacci sequence:
|
||||
|
||||
```js
|
||||
const fibonacci = n => {
|
||||
if (n <= 1) return n;
|
||||
return fibonacci(n - 1) + fibonacci(n - 2);
|
||||
};
|
||||
|
||||
fibonacci(6); // 8
|
||||
```
|
||||
|
||||
The base case for this example is `n` being less than or equal to `1`, where the function returns the value of `n`. Any other value will call the `fibonacci` function twice to compute the values of `n - 1` and `n - 2`. These will in turn call the `fibonacci` function again until the base case is reached.
|
||||
|
||||
While the Fibonacci sequence can be solved with recursion, it can be more efficient to solve it using iteration. However, the inverse is true for a lot of other problems where identifying and indexing the sub-problems is difficult or costly.
|
||||
Reference in New Issue
Block a user