Hofstadter is talking about one of the types of recursion here. Recursion, that eternal principle which is the core of all programming. I don't think its pure coincidence that it rears its head at all times at the most unknown places.
It, being a common tenet for all programming, is because recursion is present all around us. Its the basis for mathematics, sciences and life as a whole.
I, for one, believe that the universe is a manifestation of a small pattern repeated over and over again by using recursion principle. (More on this later ...)
Whenever we encounter recursion, we always look for a terminating condition to break out of the loop:
In the above psuedo-code we break out of recursion when M is achieved. This can be achieved while we go through this another loop TryAgain which at some point will break you free of the loop.
But as we will see later on there is more than one way to break out of the loop even without achieving M here ...
The strange loop which Hofstadter is talking about is when you are in a circular loop. People familiar with a circular linked list can easily identify with it. Its a hierarchy with a parent node showing way to a child node. But somewhere along, while traversing the hierarchy, the child node loops back to one of its parent nodes and we end up in a tangled hierarchy.
India's Space Businesses Are Ready for Takeoff
14 minutes ago