- Dijkstra was right - recursion should not be difficult has a good overview of Recursion.
- Recursion made simple
- Iteration vs Recursion gives a good overview of the efficiency comparison between recursion, iteration, and an optimized recursion where the values are stored in a Dictionary. The optimized recursion could be made even more efficient using tail recursion, though for things like the Fibonacci numbers & factorial the iterative solution is going to be more efficient if for no other reason than it doesn't make additional method calls.
- Thinking about Recursion
From DonaldPShimoda, Hacker News:
- Write down what your function does in a comment. (e.g., "sum all the elements of a binary tree").
- Write the function signature.
- Write the base case. (This is usually straightforward.)
- Stop thinking.
- Assume your function already works and write the recursive case.
- Profit!
- Some more discussion about methods to find Fibonacci numbers
- VIDEO: The Ackermann Function
- Wikipedia article
- Play Online
- Or play online here
- A great overview
- Recursive drawing lets you make interesting recursive drawings
- This article about recursive data structures starts with an interesting application of recursion to rotate images.
To understand recursion, you must first understand recursion.