
On 18 Mar 2009, at 16:32, Zachary Turner wrote:
A few others have given more complete walkthroughs / traces of the executions, but just to add a little. When it finally "clicked" with me and recursion became easier to understand, it was when I stopped trying to think about the entire execution chain. For example, let's say I run a ticket resale (scalping) shop and someone calls me and says "hey I need two tickets for the show this saturday." I tell the guy sure no problem, I'll call you back in 2 hours. But actually I don't have the tickets, so I call one of my connections. Unfortunately, he doesn't have the tickets either so this process ends up repeating for a while. When I talk to my connection on the phone I don't think "ok he's going to call John, and John's probably going to call William, and then William might call Frank, etc". I just think "he's either going to call me back and say yes or no, regardless of how he arrives at that answer". That's the key to recursion.
This, and the fact that Frank does not call you looking for tickets (i.e. we must always make some progress). Bob