Explicit use of recursion in functional programming is widely considered to be low level and bad form, like writing all your loops with gotos in a procedural&#x2F;OOP language (as was the primary argument of the Bananas, Lenses, Envelopes, and Barbed Wire paper), it&#x27;s just commonly used in intro material in a &quot;this is how you would do this by hand&quot; fashion. For things that fall outside of that, you always have the option of monadic loops if it makes the code clearer.