> You're probably saying "WHAT?!! How am I supposed to implement a counter then?!", and that's solved entirely by the fact that you can use recursion.
Yes, true, but IMHO the author ought to have explained that in most cases the compiler turns this apparent recursion into more efficient code that doesn't recurse unless it must, so you get the best of both worlds -- a pure function in source, and efficient code for the machine.