We all know the importance of protecting consumers of our libraries from our design decisions. In object oriented programming we refer to this protection mechanism as encapsulation or black box design. Functional programming allows us to achieve the same goal under a slightly different guise, abstract [...]
When pitching functional programming to an imperative friend, the “map” function is the canonical example of the obvious advantages of the functional approach. And once our backwoods imperative friend has begrudgingly accepted “map” as a neat party trick, we can really amaze them by abstracting “map” [...]
When a book is packed with concepts and information it’s very easy to gloss over something that in retrospect is very interesting. I often skim back over things I’ve already read hoping some of the new information I’ve accumulated will lead to deeper insights and interesting [...]