At the beginning there was Procedural, then came Object-Oriented languages. Now we are in the Functional Programming era. At least this is what they say...
But what does it mean design in Functional way? How can Category Theory help us here?
Many developers are eager to use this new paradigm but they’re still struggling on how to switch from OOP design to FP design.
In OOP we have the 4 Rules of Simple Design and TDD. Is it still possible to use them in Functional Programming?
I think so and I'll show a concrete examples of how to switch from a OO design to a real Functional one and how these four rules work very well with the theoretical concepts of FP. Categories, functors and monads will naturally emerge from our code, and if we understand their role better also our design will improve.
We believe that once you are familiar with the Functional paradigm, the actual choice of language and libraries don't matter much. What is important is how we can compose our functions to transform our input data into the expected output.
To be a Functional Programmer, the language and libraries don't matter, your code does!