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 P2.0, released 3 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
Title
#41259: The "Version of Book With Error" combo box on the "Add Erratum for Programming Clojure" webpage (i.e. the page I am filling this out on) state...more...
P2.0
08-Nov-09
11
#42258: Typing bin\repl.bat on my Windows PC failed. The issue is that the bat file assumes the java jre is in the system path. However, then Java is ...more...
P1.0
05-Feb-10
13
#40595: The output of the first (hello "Stu") is missing the double quotes, it should be: "Hello, Stu" The output of the second (hello "Stu") on t...more...
P1.0
28-Aug-09
15
#41419: Method isBlank of StringUtils class contains an error - "The method must return of type boolean" . One of variants of correction of an e...more...
P2.0
13-Nov-09
18

#40596: The first paragraph mentions examples.introduction.fibs and it should probably be examples.introduction/fibs.--Marius Scurtescu

P1.0
28-Aug-09
20
#41283: The lines of output from running (source identity) are not preceeded with | symbols. I was very confused about how much of that I was suppose...more...
P2.0
09-Nov-09
23

#41023: In
(use 'lancet)
where is lancet? The code does not load as is.
Also 'lancet.ant.
--art gittleman

P1.0
19-Oct-09
31
#41857: The remark about "following the *nix instructions" for Cygwin is not accurate. From a Cygwin shell, the repl.sh script does not work. You must...more...
P2.0
17-Dec-09
36
#40813: In the example of redefining the hello function to be hello-with-memory, the text says you can verify the new functionality by typing (hello "...more...
P1.0
20-Sep-09
37
#41655: (require 'clojure.contrib.str-utils) and (require 'examples.introduction) result in a java.io.FileNotFoundException - could not locate on cl...more...
P2.0
30-Nov-09
52

#41743: In the definition of index-filter, what is the purpose of the outer when? --Vraj Mohan

P1.0
07-Dec-09
52
#41693: This may be a misunderstanding on my part, but for the code example: [code] (defn index-filter [pred coll] (when pred (for [[idx ...more...
P2.0
03-Dec-09
84
#42167: In there paragraph right after the (make-array String 5) example, you state that "[Ljava.lang.String" is the JVM spec's encoding for an array ...more...
P1.0
24-Jan-10
134

#40831: "The stack-consuming-fibo creates a number of stack frames proportional to n"

n should be (2 to the n) because each call generates two calls.--art g

P1.0
21-Sep-09
145

#41967: The instantiate-task function does not need to add task at the end, since (doto task exp1 exp2 ..) returns task implicitly--rdsr

P1.0
01-Jan-10
172
#41026: Using the "binding" form does not work properly on Mac OS Snow Leopard using the code downloaded from the Programming Clojure website. (def...more...
P1.0
20-Oct-09
189

#41296: Line 8 of the runonce code has a nil that looks like it can be omitted.--art gittleman

P1.0
10-Nov-09
208
#41574: The definition of println-once should be (def println-once (create-runonce println)) as in was in the first printing assuming the code for r...more...
P2.0
19-Nov-09
208
#41579: I see what you are doing now. But if you leave line 7 of the code with (function) and include the argument to println in the def of println-on...more...
P2.0
20-Nov-09
208

#41428: (function) should be (apply function args)
This was reported for v. 1.0 but not yet corrected.--art gittleman

P2.0
14-Nov-09
209

#41297: line 8 of the runonce code has a nil that could be omitted.--art gittleman

P2.0
10-Nov-09
223 203
#41568: The example shows what would happen if Clojure allowed unqualified symbols "start" and "result" in a macro. The example continues with "start"...more...
P2.0
19-Nov-09
223
#42091: While describing about symbol capture using the bench macro, the explanation seems correct but the code has a typo. (let [start 1 end 2] ...more...
P1.0
17-Jan-10
223
#41111: When talking about auto-gensym, the "try it" example is `foo#. The font in the PDF makes this appear like 'foo#. Copying gives the correct b...more...
P2.0
26-Oct-09
292

#41122: under lemma Refs, the second line reads "concurrrency model and", which I guess should be "concurrency model and".--Maurits Lamers

P2.0
28-Oct-09