BOB Summer 2019 - Franz Thoma, Functional Design Patterns
Channel: BOB
Date: 2019-09-02

Franz Thoma,
Functional Design Patterns

While design patterns seem to be an integral part of OOP, the term is strangely absent from discussions on functional languages. Every now and then, I see questions about design patterns in functional programming get answers along the lines of »In Functional Programming, we have much more powerful abstractions, we don’t need design patterns«. So is it true that FP does not need design patterns, or have we just not looked hard enough to find and catalogize them?

Indeed, I will show in this talk that most of the familiar GoF patterns are not applicable in functional languages, either because they’re just emulating functional language features (e.g. Visitor, Strategy), or because they’re a solution to a problem we do not have in FP (e.g. Singleton). But I’m going to show that also in functional languages, we sometimes have to find reusable solutions that cannot be cast directly into a library, and are described as a design pattern instead. We will have a look at some common and widely-used patterns, like the Monad Transformer Stack, the Config Monoid, the Free Monad, and others.

https://bobkonf.de/2019-summer/thoma.html