Recursion
Recursion is defined as a function calling itself. It is in
some ways similar to a loop because it repeats the
same code, but it requires passing in the looping
variable and being more careful.