Functional Programming in Scala, Second Edition
M**N
A worthy successor to the first edition
The first edition of this book was one of the first books I ever read about Scala. I had found the early chapters very readable but had increasing difficulty in the later chapters.This edition seems to have overcome many of the difficulties I had with that first edition. While the later chapters introduce many difficult concepts, I find the discussion much more approachable. Perhaps some of that is due to the changes in the language itself, but I also think the authors have enhanced their approach a bit (though I haven't done a chapter-by-chapter comparison).Even though the initial section does a very good job of presenting language features, I'm not sure this book is ideal for an initial jump into the Scala language. However, it doesn't assume any previous knowledge of the language. I think the authors have 'threaded the needle' pretty well between lengthy discussions of tedious details that can be summarized in a few tables (or links to additional information) and a too-brief presentation of the corners of the language. In other words, this book provides a good foundation in the language (with pointers to more info) without pages of detail that make your eyes glaze over.The later chapters do a credible job of motivating more complex applications of functional programming and functional data structures and algorithms and then making use of Scala features to implement those concepts. Some of these implementations can be complicated and I had to refer back to previous chapters to get a decent understanding of exactly what was going on at times, but the effort was worthwhile.
G**E
Great Introduction to Functional Programming
I've enjoyed and benefitted from the gradual introduction of functional concepts in Java (streams, optionals, reactive streams, etc.). Interested in taking functional concepts to the next level, Scala seems the most logical (certainly most convenient) of available languages.I picked up Functional Programming in Scala (Second Edition) with nothing more than my Java background and a bit of enthusiasm. Doing so was fortunate as Michael Pilquist and his coauthors set things out very well. The concepts were introduced in a gradual, easy-to-follow flow. The explanations were simple, engaging and succinct. My questions were consistently anticipated and answered. The examples and problems were always interesting enough to engage my attention.Like all good books, getting through it required a lot of work and reflection. In my opinion it was well worth it. The authors have my appreciation.
I**E
Must have book for functional programming
Comprehensive and easy to follow book on Scala functional programming. Highly recommend!
A**R
The language has improved, the book hasn’t
If you’ve read the first edition of this book, you know the biggest issue with it, which is, the dry-as-a-desert exercises. As I wrote in my review for the first edition, the exercises are purely pedagogical and fail to generate any interest in the reader. Reimplementing List, Option, and Either types and the corresponding methods serve little to no practical purpose. This is similar to a job interview question "reverse a list without using any methods from the collection library", which begs the question, "is that what you usually do in your project?"The second edition, sadly, continues the same trope. Pick any chapter from the book and it can be summarized as below:1. Define some standard library datatype.2. Implement map.3. Implement flatMap.4. Reimplement map in terms of flatMap.5. Implement foldRight.6. Reimplement flatMap in terms of foldRight.After a while, every chapter and every exercise seems identical and excruciatingly boring. The author even went as far as building a property-based testing framework. Good lord!If the author put his expertise and some thought into coming up with some practical and realistic exercises, this book would've been good. Currently, it’s a cure for insomnia.
Trustpilot
2 weeks ago
5 days ago