A way of understanding “simple” in “Simple is not easy” is that simple things/designs/programs/values are those that are easy to manipulate. And that requires a structure, which might not be easy to grasp or come up with naively.
FP, especially in expressive languages like #haskell and #purescript emphasizes abstract reusable structures exactly for this reason of easy manipulation and hence simplicity. The associated learning curve makes it indeed not easy.
But “easy” in all of this means “free goodies without effort”. The opposite is not the discouraging “undoable and impossible to learn so don’t even try” at all.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I write #fsharp and #haskell daily (and #purescript too) and thought of making a micro-blog comparison of the two. Fun facts and maybe new discoveries for the interested, in no particular order. This will be long and probably slow.
Unlike #fsharp, #haskell has no records, only discriminated unions. It does have something called “record syntax” for DUs.
In #fsharp functions cannot be overloaded. In #haskell it is possible through the “type classes” mechanism, conceived specifically for this.