This week's selected xkcd cartoon of the week is about the most feared of programming concepts - recursion. And, to paraphrase a well known quote, if you don't fear it, then you don't understand it.
OK, perhaps you do understand it, but it is in the nature of recursion to occasionally mislead and surprise even the most experienced programmer. You probably don't need to fear it, but you do need to respect it for the powerful construct it is.
In the cartoon, the player of a game starts another, similar, game within the game and this could involve the players in this game starting another game and ...
More cartoon fun at xkcd a webcomic of romance,sarcasm, math, and language
Of course there are games where you can indeed create real world objects and perhaps the most recursive is to create a computer itself - shades of the Matrix.
Recursion has many facets. On one level it is just the fourth flow of control - sequential, conditional, loop and recursion. On another levels it leads to difficult paradoxes and perhaps even the experience of consciousness. The idea is that we are conscious because we observe ourselves - the ultimate act of recursion.
Many programmers and philosophers refer to the "strange loop", which is the idea that a self-referential loop has more going on than meets the eye. If you want to know about these ideas then read: Gödel, Escher, Bach: An Eternal Golden Braid (see sidebar). A book that is more focused on the strange loop idea is I Am a Strange Loop (see sidebar).
If you would like to know more about recursion - then see Recursion.
This is an interesting idea: take a core programming language and allow the users to teach the system how they want to express their intentions. Instead of trying to use natural language as a computer [ ... ]