What is the main problem with functional programming?
It was created to save space and memory. In the past, memory was everything but those days are long gone.
For example, it is an code for Commodore c64:
10?"hello world"
We could use 10 print "hello world" but the extra space means 1 byte less, and we also replace print by "?".
With functional programming, we a cluttering many steps or operations in the statement. We are not doing to save space or memory but because IT IS A LAZY way to work. Where is the validation? And what if the code fails in half the statement?. We could add a functional code that validates the code but we don't do because we would add a lot of code and we will increase the cluttering.
And the second point:
Functional code wasn't mean to be reused, it lacks reusability of the code and it means to rewrite the same code over and over again and it is not funny. It is the reason why we don't see a project build with only 100% functional code.