HackerTube.live
Books / Programming

THE READING ROOM / BOOK GUIDE

Functional Programming In Scala

Paul Chiusano

A programming book that teaches functional programming by having you build the ideas yourself in Scala, from pure functions up through algebraic abstractions and effectful programs.

About the book

Functional Programming in Scala, by Paul Chiusano, treats functional programming as a discipline to be practiced, not a set of library calls to be memorized. Scala is the working language, but the subject is the underlying craft: writing pure functions, composing them, and reasoning about programs the way one reasons about algebra. The book is organized around constructing abstractions, so the reader works through exercises that build the machinery being discussed.

The material moves from foundational ideas such as purity and referential transparency toward algebraic structures, data types, and the handling of effects and state in a functional style. Scala's mix of object-oriented and functional features makes it a practical vehicle, though the concerns apply to functional programming generally. It is a teaching text with a strong emphasis on doing, not a reference manual for the Scala standard library.

How to read it

Approach this as a workbook. The exercises carry much of the argument, and skipping them turns dense passages into assertions you cannot check. Expect to write code, run it, and revise. Pacing matters more than speed; a few exercises understood deeply beat many skimmed.

The prose is precise and sometimes terse, and the abstractions compound. Earlier material is assumed later, so gaps become costly. Keep the language reference nearby for Scala syntax, and use each new abstraction before moving on. The difficulty is real but deliberate.

Who it suits

Readers who already program in Scala or another language and want to understand functional programming from first principles will get the most from it. It suits people preparing to work with functional libraries or codebases who want to know why the patterns exist. Those who prefer learning from complete examples and finished APIs may find the exercise-driven style slow.

Reading considerations

Scala has changed since the book appeared, and some syntax and library details may not match current tooling, so check compatibility with the version you use. It also assumes comfort with programming and some mathematical notation. Readers wanting a gentle first introduction to Scala should look elsewhere first.

Follow the HN conversation

33 different recommenders are recorded in the upstream dataset. These are AI-classified source counts, not an independent rating.

Search HN comments about this book ↗

Explore videos on the same subject ↗

Book notes prepared with DeepSeek, using catalogue records and Open Library subject information. They are reading guidance, not a personal review or a verified chapter-by-chapter account. Book details can vary by edition. HN data methodology · Book metadata and covers.