Morphing SOLID principles
Let's consider how the functional programming paradigm morphs the five basic principles of the object-oriented design known under this bold acronym of SOLID.
Single Responsibility Principle
The gist of Single Responsibility Principle (https://en.wikipedia.org/wiki/Single_responsibility_principle) (SRP), standing for the letter "S" in SOLID, in OOP terms is:
"There should never be more than one reason for a class to change"
In other words, if a class implementation is to be changed in response to two or more independent modifications to a functionality, this is an evidence of the Single Responsibility Principle (SRP) violation in its design. Following this principle in the OOP world entails designs consisting of many lean classes in lieu of fewer but bulkier classes.
If we consider a function as a degenerate case of class free of encapsulated data and having only the single method, then this is nothing but a quintessence of SRP applied. The...