The functional paradigm, in theory, is beautiful to see. Pure Functions , immutable objects and predictable outputs. This can facilitate development, decrease the incidence of bugs , and help maintainability. From this, is there a way to build a useful fully based application in functional programming?
In my view, any external communication or side effect as:
- print in console ;
- consume system date / time;
- save / retrieve data from a database
It hurts the pillars of the functional paradigm.
How does building an application with functional programming work? Is there no way to fully respect this paradigm to build something real / useful?
If I want to build something, should I have part of my functional code and the impure part separated into another paradigm that allows me to externally interact? In general, how do functional languages (F #, Erlang / Elixir, Scala) handle this? Or do not even deal?
Consider a useful - I can and I'm generalizing - application that communicates with external systems such as databases and / or APIs.