An intro to tail recursion for imperative programmers
jamesroutley.co.uk