Learning Functional Programming in Scala (pdf)

My new book, Learning Functional Programming in Scala, is currently on sale as a PDF. Details are listed below.

Back to top

What’s new: September 12, 2017

The changes in Version 0.1.4 are:

  • Added 13 new chapters on the StateT monad and monad transformers
  • Added 10 new chapters on Domain Modeling
  • Added two new chapters on ScalaCheck
  • Added new appendices on Anonymous Functions, and using def vs val in traits
  • In total, the book now has 113 chapters, four appendices, and is 983 pages long (an increase of 176 pages over the last release)

I expect to have only one or two small releases after this. The book is nearly complete, so there will be a few additions, and then I’ll work on improving the book formatting.

Back to top

What’s new: June 25, 2017

If you’ve been following along with me recently, the latest changes are:

  • The PDF is 807 pages long. (But it’s an easy read, with plenty of figures and simple source code examples.)
  • That includes 88 short lessons, and over 180 new pages since the last free release in May.
  • The new chapters cover Option, flatMap, for expressions, writing your own “wrapper” classes (i.e., functors and monads), the IO and State monads, and function composition.

The June 25th release (Version 0.1.3) is a free update to everyone who purchased Version 0.1.2 of the book. I hope to release the next update on September 10, 2017.

Back to top

Buying the book

Here are some important things to know before you buy the book:

  • While it’s in good enough shape to explain concepts like functors and monads, I still consider this to be an “alpha” release.
  • When you buy the PDF, you’ll get free updates to it as soon as they become available.

You can buy the book at this gumroad.com link:

Back to top

One more thing

I’m glad to say this:

5% of the profits will be donated to The Scala Center.

This is a small way to “pay it forward,” and show my gratitude to the creators of the Scala language and the Scala community.

Back to top


If you’d like to preview the book before buying it, you can choose from these two options:

Note that I’m putting 99% of my effort into the PDF, and after that I’ll be putting my effort into MOBI and hardcopy versions, so I won’t be adding any lessons to the HTML version any time soon.

Back to top

Some time in the future ...

At some point I hope to have MOBI and hardcopy versions of the book available, but until I decide what I want to include in the final version, this seems like the best way to help people today.

Back to top

It is an awesome book, I really enjoy reading it.

Page 240 of the 0.1.2 PDF version of this book

"... such as the earlier sum function - its type would be shown like this:

Map[(Int, Int) => Int]"

I think the type should be

(Int, Int) => Int


The gum road website allowed my to download the new revision today with no difficulties. Thank you for posting the earlier version to read and I appreciated being able to purchase the book.

Add new comment

The content of this field is kept private and will not be shown publicly.

Anonymous format

  • Allowed HTML tags: <em> <strong> <cite> <code> <ul type> <ol start type> <li> <pre>
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.