When it comes to what makes a computer (or any other) language a programming language, there are three characteristics usually required:
- Saving state (variables)
- Selecting a code path (if-then)
- Iteration or recursion (or equivalent)
This post is just a brief note (for a friend) about the third item and why it allows three distinct options.