Things I learned from functional programming
sokolmichael.heroku.com
sokolmichael.heroku.com
When done correctly, recursion increase a lot readability and avoids using cumbersome control structures such as loops.
In my experience, recursion makes things much harder, mainly because if you have a bug, you can narrow down the location in an iterative process but a recursive process is too interconnected to do that with easily. Also readability suffers a little for mathematical people like me, and a lot for anyone else. I agree that replacing loops with map/reduce/filter increases readability, but replacing loops with recursion?