We try to keep our books accurate, but sometimes mistakes creep in. This page lists the errors submitted by our astute readers. If you've found a new error, please submit it.

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

Key: Typo Tech. Error Suggestion Not a problem Next edition

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

(To find out what version you have, look at the copyright page, a few pages in from the front of the book. If it says (say) 'Second Printing', then here it'll be P2.0. If there are interim PDF releases in that printing, they'll be 2.1, 2.2, and so on.)

PDF Paper Description Found in Fixed in
14
#53222: From the last sentence in the Preface: "Also, for ebook buyers, clicking on the box above the code extracts downloads the code for that extr...more...
P1.0
27-Nov-13
18

#58785: namesCommaSepErated -> namesCommaSepArated

P1.0
02-Jan-14
21
#58786: Model seems to suddenly have become a map of "string to string" instead of "string to list of string": trait View { def render(model: Map[S...more...
P1.0
02-Jan-14
23

#58773: In the 2nd paragraph "Switching over to use the try-catch as a statement..." should probably be "... to use the try-catch as an expression..."--Marco Ehrentreich

P1.0
29-Dec-13
24
#58774: In the paragraph below the code fragment for Controller.scala: "... to understand which HttpRequest we're returning..." should likely be "....more...
P1.0
29-Dec-13
27
#53256: In file Example.scala "random" and "greetings" should be declared using "val" (and not "def"): private val random = new Random() private va...more...
P1.0
30-Nov-13
57

#53233: “Keeping track of changing stack is especially tricky.”

"stack" should likely be "state"--Jake Goulding

P1.0
30-Nov-13
62
#53189: The text figure 2 and the code do not match up. The figure uses Scope 1 bar = "second bar" foo = "second foo" The code in closure_exampl...more...
P1.0
21-Nov-13
73
#53234: "We’ll look at these examples first in an iterative style written in Java, and then we’ll collapse them into a more declarative style in Scala...more...
P1.0
30-Nov-13
73

#53235: “If it’s in the set of all vowels, we add it to ​vowelsInWorld​ and return it.”

vowelsInWord is the name--Jake Goulding

P1.0
30-Nov-13
81

#53236: “Here we use ​doseq​ to print our list of greetings”

doseq does not appear in the following code snippet, or for the next 8 pages.--Jake Goulding

P1.0
30-Nov-13
85

#53237: "Figure 5—Grade Reporter Template. Using Template Method to report grades"

This figure shows validators, which seems to be from the next example.--Jake Goulding

P1.0
30-Nov-13
86

#53238: “Here we pass in the identify function, which just returns whatever was passed in”

Should be `identity`--Jake Goulding

P1.0
30-Nov-13
107
#53239: “Let’s take one last look at handling nothing by examining a case in which” This appears directly before the discussion section at the end ...more...
P1.0
30-Nov-13
110

#53240: “The ​Calculator​ interface is implemented by both ​CalculatorImp​ and ​LoggingCalculator​.”

Impl is missing the 'l'--Jake Goulding

P1.0
30-Nov-13
121
#53241: “Extending the shape type to have additional implementations is easy. We create a ​Shape​ interface with multiple implementations. If we wa...more...
P1.0
30-Nov-13
129

#53242: “To stub out functions for testing purposes, we can use a macro named ​with-redfs​”

Should be `with-redefs`--Jake Goulding

P1.0
30-Nov-13
146

#53243: Mutual recursion has no even/odd example for Clojure.--Jake Goulding

P1.0
30-Nov-13
189
#53244: "To take a few, we can use take again:" These examples all have 2147483647 as the random number. While possible, I'm guessing it wasn't int...more...
P1.0
30-Nov-13
201
#53245: “Comparing the shortest and longest runs of both versions gives us a speedup of about 1.5 ” The Scala example uses percentages, Clojure use...more...
P1.0
30-Nov-13
212

#53246: “The macroexpansion step as described in the diagram”

Should be two words.--Jake Goulding

P1.0
30-Nov-13
214

#53247: “From there, we use ​sum​ to calculate the sum off all runtimes”

Likely to be "of"--Jake Goulding

P1.0
30-Nov-13