
Am 11.07.2018 um 14:10 schrieb Simon Peyton Jones via Haskell-Cafe:
Another thing that I think comes over easily is the ability to abstract: generalising sum and product to fold by abstracting out a functional argument;
You can expound more on that: People don't have to write loops anymore (with their fencepost issues etc.). It's like a "for" loop, but written using in-language facilities instead of having to live with what the language designer does. This means you can roll your own loop constructs. Consider iterating over the elements of a data structure such as List, Tree, etc. Most languages offer an Iterable interface, which tends to be somewhat messy to implement. With a higher-order function, you can just write down the loop, *once*, and the loop body will be provided by a function parameter, and voilĂ ! you have your loop construct. HTH Jo