Full Disclosure: I was a Technical Reviewer for this book
Functional Programming in Scala is a very interesting, but extremely challenging book. One thing it is not is a Scala book, despite that the name may make you think. This is a book about Functional Programming itself, and the language it uses for examples simply happens to be Scala. The content borders on academic in nature, if you know any nerdy neckbeards who are super into Functional Programming and like talking about monads and functors and whatnot, you know the kind of stuff you're getting.
Things are well explained, but the information is extremely dense. I reviewed this book, so I wound up reading the same sections three or four times through the different revisions, and I *STILL* struggled with understanding everything. This book is not for the faint of heart, and it's not the kind of book you can passively read. It's really more like a course or a textbook for one.
One really interesting thing you wind up doing in the book by working through examples is building up classes that actually could replace some of the classes in the scala standard library. It's a really fascinating way to see what the library classes are up to under the hood, it's all very eye-opening.
Overall, this is one of the most informative books on Functional Programming I've ever heard, but I can't help but lament how difficult the material is. I don't know if it's a problem with presentation or if it's just me, but I repeatedly had that nagging feeling of "holy crap, I'm too stupid for this stuff" while reading. When I'd submit feedback for the authors, I often imagined them seeing it and rolling their eyes at what a bozo I was, then pushing up their glasses and proving something on a chalkboard. The fact that most of my feedback was actually incorporated into the book is the only reason I don't feel like I must be a complete idiot, but without that kind of feedback I wonder if other readers will feel similarly to how I did. If so, let me assure you, you are not alone, this book is very, very difficult.