OOP habits die hard. Having trained my OOP skills through the years, I have applied unconsciously OOP techniques while writing code in functional languages. The quality of the code and test suffered because of it, leading to a very confused design and maintenance problems.
For OOP we have designed good guidelines to produce code that is readable and maintenable, like SOLID, DRY, … On top of it we have Object Calisthenics, for practicing the creation of good OOP Code. Functional Calisthenics have the same aim for the functional paradigm.
In this talk I will explain the rules, with examples in Clojure, Elixir, Scala, and F#, on the hope that I can show how they lead to better functional code and to entice you to try them for yourselves.