- English— you have to be willing to summon up a dictionary to look up the meaning of a word you don’t understand
- Learning — there is a bit of jargon to learn in the beginning, but once you learn it you can reuse it across all functional programming libraries and languages.
- Time — you will have to dedicate some time to reading a bit of documentation, to index the several functions you have available to you in Functional Programming libraries.
Why it works
The brain processes ideas and thought by collecting a few pieces of information, forming an abstraction that represents this collection of information, and then moves on to the next collection, until it has a collection of abstractions, then it creates a new abstraction of these abstractions. This process happens as more information is imparted onto it, and this allows it to handle complex ideas without having to think about everything at the same time. That is what functional programming gives: abstractions. It allows one to abstract away the details of how the data is transformed, and simply describe the transformations instead.
Functional programming has given me:
- Improved problem solving
- Easier to read code
- Reduced surface area for bugs