Node:Recursion, Next:Looping exercise, Previous:dolist dotimes, Up:Loops & Recursion
A recursive function contains code that tells the Lisp interpreter to call a program that runs exactly like itself, but with slightly different arguments. The code runs exactly the same because it has the same name. However, even though it has the same name, it is not the same thread of execution. It is different. In the jargon, it is a different `instance'.
Eventually, if the program is written correctly, the `slightly different arguments' will become sufficiently different from the first arguments that the final instance will stop.