Recursion - a function which calls itself
Recursion is a method to solve problems. It means breaking down a problem into
smaller and smaller sub-problems until the sub-problem is easy to solve.
Recursive functions call themselves. Often, recursive solutions are terse and elegant.
Recursive solutions are not always the most efficient. However, they can be an excellent
starting point that you can improve the efficiency of afterward.