Re:Why study functional programming? (2012)
by grumpyprole on Wednesday August 03, 2022 @03:41AM
(#32328744)
Yes, recursion can be used to define a function inductively, just as we would in maths. However, recursion is the "GOTO" of functional programming and we prefer to used structured programming if possible, e.g maps/folds/unfolds etc. That would be a better reply for the parent post.
[ Parent
| on HN ]
Re:Why study functional programming? (2012)
by kephasp on Wednesday August 03, 2022 @02:14PM
(#32335104)
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.
Re:Why study functional programming? (2012)
by grumpyprole on Thursday August 04, 2022 @04:06AM
(#32340428)
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.
Re:Why study functional programming? (2012)
by kephasp on Sunday August 14, 2022 @11:49AM
(#32460235)
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?
Re:Why study functional programming? (2012)
by grumpyprole on Thursday August 18, 2022 @05:59AM
(#32507385)
If you don't mind some advanced Haskell, these slides have plenty of examples:
https://github.com/willtim/recursion-schemes/blob/master/sli...