Could some explain recursion to me? I mean, I get it, I understand that it's a function calling itself as many times as it needs to, but what is it used for? Can you give me an example? Can you explain when I would use recursion, vs. when I should just write an algorithm?
I'm looking for a fairly comprehensive answer, which is why I'm doling out 200 points...