Recursion: Review
Two parts to every recursive program:
- Base case (always first, stops the recursion)
- The recursive call
Each invocation of the function is on a version of some argument that changes systematically toward the base case
The initial call must come from some other procedure or function