6.12 Recursion
A recursive function is one that calls itself. At first thought, this could be a problem because it might seem that the execution would never stop: the function would call itself, which would call itself, which would call itself, and so on. Indeed, this simple example function does just that:
def f(x):
f(x)
f(2)
Eventually, Python will give up and raise an error:
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in f
File "<stdin>", line 1, in f
File "<stdin>", line 1, in f
[Previous line repeated 996 more times]
RecursionError: maximum recursion depth exceeded
Python is saying: “Look, I tried doing the same thing a thousand times, but enough is enough, and you probably didn’t intend to do it.” The recursion depth can vary from system to system. In what follows, I assume it is 1,000.
I give...