This was an interesting article on recursive programming. I do it infrequently enough that I have to try and remember how to properly structure recursive functions whenever I write one, and this gave me a few basic things to remember that will make it easier next time around.
Recursion is a tool not often used by imperative language developers, because it is thought to be slow and to waste space, but as the author demonstrates, there are several techniques that can be used to minimize or eliminate these problems. He introduces the concept of recursion and tackle recursive programming patterns, examining how they can be used to write provably correct programs. Examples are in Scheme and C.