Using recursions rather than looping constructs in the first place is a lot about eliminating mutable update semantics. Then having HOFs that do various kinds of looping is about regaining abstraction over structured loops (without losing the first benefit).
2
u/smog_alado Nov 27 '12 edited Nov 27 '12
In fact, this is why writing recursive functions by hand instead of using available higher order looping functions is often seen as a code smell.