Why learn functional programming? Isn't that some complicated ivory-tower technique used only in obscure languages like Haskell?
In fact, functional programming is actually very simple. It's also very powerful, as Haskell demonstrates by throwing away all the conventional programming tools and using only functional programming features. But it doesn't have to be done that way.
Functional programming is a power tool that you can use in addition to all your usual tools, to whatever extent your current mainstream language supports it. Most languages have at least basic support.
In this book we use Python and Java and, as a bonus, Scala. If you prefer another language, there will be minor differences in syntax, but the concepts are the same.
Give functional programming a try. You may be surprised how much a single power tool can help you in your day-to-day programming.