Comment by noelwelsh

8 hours ago

* Composition and reasoning. Standard things in FP. Build big things from little pieces. Understand them the same way.

* Explicitly define the order of evaluation (important in Haskell, where lazy evaluation makes the default order of evaluation difficult to trace)

* Useful mental model that helps with 1) design and 2) understanding new concepts

* Abstraction. Ignore irrelevant details. Write the standard library once, use it in many different situations.