Hacker News new | ask | show | jobs
by kephasp 1415 days ago
Of course I use combinators more often than I write recursive functions. But if someone finds recursion less readable, I still think they're missing something crucial.

And I don't think recursion is a GOTO that should be avoided. It's a useful tool that's easy to read and reason about.

1 comments

I agreed with your parent post and upvoted you, but too many inexperienced with functional programming claim it is all (or too much) recursion. I think this should be challenged.

Yes recursion is a useful tool, just like GOTO and is sometimes necessary or more practical. But it is better to e.g. use a fold if you can because that further constrains and aids reasoning. For example, a fold will always terminate unlike general recursion.

I recommend looking into recursion schemes, if you aren't familiar with them.

I read about them a few times, but I never saw them proposed as the main access to recursion. Are there examples of that use?
If you don't mind some advanced Haskell, these slides have plenty of examples:

https://github.com/willtim/recursion-schemes/blob/master/sli...