Back when I was doing my Computer Science degree, Java was at the height of its popularity. Object orientation was seen as the only recognised programming paradigm. This continued throughout my career working on projects using C# with deep inheritance structures.
I am no expert on Functional programming, I am relatively new on this journey. But I wanted to list some of the resources that I have found useful. Resources that have made concepts like functors and monads not as scary as they may once have been.
- Composing Software by Eric Elliott (also available as a series of blog posts)
- Professor Frisby's Mostly Adequate Guide to Functional Programming by Brian Lonsdorf (& others)
- Learn You a Haskell for Great Good!