Understanding Recursion

A concept that is notoriously difficult to grasp with entry-level programmers is recursion. The reasons for this are plentiful, but from my personal experience it took a while to click due to the potential found in the iteration of loops, which is capable of performing so many tasks. However, nested loops and other complexities surrounding iterative programming can take up many lines of code and be difficult to comprehend what process is taking place. This is where recursion can come in handy, which is simply “defining a problem in terms of itself”. More specifically, recursive functions have 3 primary attributes:

  • A base case.
  • A call to itself.
  • Work towards the base case.

By call to itself, it means the name of the function will appear within the function. This is so we don’t have to repeat the prior code for the number of times the task will be performed.

I want to share the function which made recursion click for me; the goal is to write a function which returns the value of a positive number in the Fibonacci sequence given its position from 1, so, with 13 being the 7th number in the sequence, will return 13 when 7 is entered. The way to write this recursively is like this:

function fibSeq(int) {
if(int >= 3) {
return fibSeq(int-2) + fibSeq(int-1)
} else {
return 1
}
}

Per the sequence, the following number will always be a combination of the previous two numbers so long as the value is 3 or above. 1 is simply 1, and the second position of the sequence is also 1 because it combines 0 and 1. The base case is 1 as declared within the “else” statement. Every time the function is called, it will perform the operation of subtracting 1 and 2 from the input constituently and adding those integers together. Amazing, right?!

I hope I helped illuminate this concept a bit to you. It is a very strange and self-referential idea at first, but I guarantee, the more it is studied the more it makes sense, and the more the potential illuminates itself your way!

--

--

--

Programmer / Artist / Believer

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Making bedav.org an Offline First Progressive Web App

How to source tech talent on GitHub

Debunking AWS Pricing

7 Fullstack Projects You Need to Make in 2021

LeetCode — 739. Daily Temperatures (Medium)

Introducing Hiveroad — Your Highway to IOTA

The Truth On Trump’s Recent Firing Of My Wife

Spark 3.0 Monitoring with Prometheus in Kubernetes

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Lucas Thinnes

Lucas Thinnes

Programmer / Artist / Believer

More from Medium

Sorting Techniques 1.0

What is an Array?

What is Recursion in programming?

Divide and Conquer vs Greedy Algorithms.