small medium large xlarge

The latest version of the book is P1.0, released over 4 years ago. If you've bought a PDF of the book and would like to update it to this version (for free), visit your home page.

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:

If you've found a new error, please submit it.

  • Typo
  • Tech. error
  • Suggestion
  • Maybe next edition
  • Not a problem
  • Reported in: P1.0 (14-Dec-17)
PDF page: 5
The website no longer exists, so it's kinda hard to run the examples. The data is available elsewhere and can be massaged into...more...
  • Reported in: P1.0 (07-Jul-17)
PDF page: 19
The code example in chapter 1 uses the yahoo finance API (, however, that API was discontinued in May of this year. Because o...more...
  • Reported in: P1.0 (10-Mar-16)
PDF page: 111
“If you want to convey the possible nonexistence of a value, use Optional, but to vary between possibly two different values, use Either.” I believ...more...
  • Reported in: P1.0 (13-Mar-16)
PDF page: 151
Dog.scala needs to override val name in initialize otherwise it won't compile. Compilation error: "Dog.scala:1: error: class Dog needs to be abstra...more...
  • Reported in: P1.0 (13-Mar-16)
PDF page: 167
The example of filterNameStartWithDAndPragprogInFeed tries to filter urls with "pragprog" but the feeds Map only contains ("Dave Thomas" -> "pragdave....more...
  • Reported in: P1.0 (13-Mar-16)
PDF page: 171
The output of "println(s​"All feeds have com: ${feeds.forall( _ contains "​com​" )}"​) is said to be "All feeds have com: true" but the feeds List def...more...
  • Reported in: P1.0 (13-Mar-16)
PDF page: 172
The output of "println(s​"Feed url lengths: ${ _.length ).mkString("​, ​")}"​)" is said to be "Feed url lengths: 17, 21, 23" but is "Feed ur...more...
  • Reported in: P1.0 (13-Mar-16)
PDF page: 172
The output of: val​ total = feeds.foldLeft(0) { (total, feed) => total + feed.length }​  println(s​"Total length of feed urls: $total"​)” Is s...more...