The basic case of recursion is a function calls itself, reducing the size of
the problem at each subsequent call, to progress towards a base case.
```
function {
if (base case) {
return;
@ -1379,7 +1379,7 @@ the problem at each subsequent call, to progress towards a base case.
@@ -1379,7 +1379,7 @@ the problem at each subsequent call, to progress towards a base case.
return function();
}
}
```
This has the risk of stack overflows, because each call adds to the callstack.
Recursion is more elegant for some types of problems, which are naturally