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 about 1 month 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.
| PDF |
Paper |
Description |
Found in |
Fixed in |
| All |
|
#47623: My ebook reader on android (aldiko) can't import the epub version into my library, because some information seems to be set like in the first edition.--abp
|
B1.0
22-Sep-11
|
|
| 1 |
|
#47996: The cover on the epub version on page 1 on the nook touch is not scaled to the visible area of the nook.--Steven Proctor
|
B3.0
21-Nov-11
|
|
| 1 |
|
#49131: The ebook reader on my Android tablet shows an incorrect thumbnail, it shows "SQL Antipatterns", i.e. images/_covers/bksqla.jpg (the 1st within that directory) instead of images/cover.jpg . Rather, rather strange!--Jochen Hayek #49131: The ebook reader on my Android tablet shows an incorrect thumbnail, it shows "SQL Antipatterns", i.e. images/_covers/bksqla.jpg (the 1st withi ...more...
|
P1.0
18-Apr-12
|
|
| 10 |
|
#48926: In the book it states, "...but notice that in the following code the Clojure version has both fewer dots and fewer parentheses than the Java version:
// Java
"hello".getClass().getProtectionDomain()
; Clojure
(.. "hello" getClass getProtectionDomain)"
I count two dots in both sets of code. If there was one more function call in the example, then it would seem more accurate saying fewer dots and fewer parentheses. --Grant #48926: In the book it states, "...but notice that in the following code the Clojure version has both fewer dots and fewer parentheses than the Java v ...more...
|
B5.0
11-Mar-12
|
|
| 15 |
|
#48471: The hello user with memory example is incomplete and so is the associated source code. It seemed fine in the previous release (i.e. b3).--David Sweeney
|
B4.0
06-Jan-12
|
|
| 16 |
|
#49035: Link for the Github Repo in the footnote probably isn't the up to date code. Please update it with the latest or totally remove it. Wasted an hour on it when i saw that the repo was last update "6 months ago"--Suvash Thapaliya #49035: Link for the Github Repo in the footnote probably isn't the up to date code. Please update it with the latest or totally remove it. Wasted an ...more...
|
B5.0
30-Mar-12
|
|
| 17 |
|
#47997: In the epub version on the nook touch, footnotes 3 and 4 on page 17 do not have the full url it stops after the "//".--Steven Proctor
|
B3.0
21-Nov-11
|
|
| 26 |
|
#47991: URLs in footnotes (as on this page, but there are others) are missing the ':' after 'http'. The linked URL itself is correct, i.e. the hyperlink works, but the 'printed' URL lacks the semicolon.
--Justin Forder #47991: URLs in footnotes (as on this page, but there are others) are missing the ':' after 'http'. The linked URL itself is correct, i.e. the hyperli ...more...
Aaron and Stuart says: What version are you using? I don't see this in the pdf version.
|
B3.0
20-Nov-11
|
|
| 29 |
|
#48863: Where is says “To run Clojure and the code in this book, you need two things:”
I think it would be beneficial to say you need 3 things instead, with the third being a copy of the code repository for this book. I know this information is clarified shortly below where it says “See Section 6…” but when skim reading (like I was doing) it gives the appearance that section 6 is, in fact, much further down in the book as this is chapter 1 and thus the information won’t be needed until later. This caused some confusion for me later on in the book when I was trying the ”->Book” example in one of the later sections and it didn’t work because I hadn’t used leiningen to get the core dependences I needed. I believe by putting the repository for the code as a third dot point and by not referring to it as “Section 6” it would make the reader pay more attention that this process is essential to learning with the book; especially if they are skimming the first chapter as I was doing.--Adrian Tompkins #48863: Where is says “To run Clojure and the code in this book, you need two things:”
I think it would be beneficial to say you need 3 things instea ...more...
|
B5.0
02-Mar-12
|
|
| 32 |
|
#48793: I also tested the code and the following does not work
(defrecord Book [title author])
(->Book "title" "author")
I then tried the following and it worked.
(Book. "title" "author") #48793: I also tested the code and the following does not work
(defrecord Book [title author])
(->Book "title" "author")
I then tried the followi ...more...
|
B4.0
21-Feb-12
|
|
| 42 |
|
#47585: Found another instance of a "word" being highlighted as if it were a function when it isn't being referenced as one in the require form just prior to the defn for ellipsize. str in the :as clause is highlighted, but I don't think it should be. It's subtle, but could be confusing. Might be worth doing a search for all instances of Clojure functions and confirm that they are actually being referred to as functions when highlighted as such?--Doug South #47585: Found another instance of a "word" being highlighted as if it were a function when it isn't being referenced as one in the require form just p ...more...
Aaron and Stuart says: This is a case where str is a function in clojure.core and the clojure mode highlighting is picking that up. I'll see if they can add a case for this in the syntax highlighter.
|
B1.0
16-Sep-11
|
|
| 48 |
|
#48010: In the epub version on the nook touch, Table 1, the underline of "Using Numeric Types" for the link is not under that part of the text, but spans the whole part of the line that is before that text.--Steven Proctor #48010: In the epub version on the nook touch, Table 1, the underline of "Using Numeric Types" for the link is not under that part of the text, but sp ...more...
|
B3.0
22-Nov-11
|
|
| 48 |
|
#48099: Can't turn past page 48 on the kobo ebook reader. Crashes the reader and forces a reboot. If I go to page 100, and then attempt to go to page 50, it reboots. Using Acrobat digital editions, it's the table on page 48 of the epub that it can't reach.--Graham #48099: Can't turn past page 48 on the kobo ebook reader. Crashes the reader and forces a reboot. If I go to page 100, and then attempt to go to pag ...more...
|
B3.0
01-Dec-11
|
|
| 49 |
|
#48823: The use of -> to represent the result of an evaluation is somewhat confusing as there is a macro that uses same symbol. So if you try searching the book to find what -> means you end up with a *lot* of matches.
This is most confusing at the bottom of PDF page 48/top of PDF page 49 where you instantiate a Book instance with:
(def b (->Book "Anathem" "Neal Stephenson"))
Without explaining what the -> macro does (and neither is it defined in the index) .
Hope this helps.--Aled Davies #48823: The use of -> to represent the result of an evaluation is somewhat confusing as there is a macro that uses same symbol. So if you try searchi ...more...
|
B5.0
28-Feb-12
|
|
| 60 |
|
#48848: Example on page 60 where you are explaining how maps can be treated as sequences too:
(first {:fname "Aaron" :lname "Bedra"})
-> [:lname "Bedra"] // Should Be: -> [:fname "Aaron"]
(rest {:fname "Aaron" :lname "Bedra"})
-> ([:fname "Aaron"]) // Should Be: -> [:lname "Bedra"]
Looks like the results got mixed up--Joshua Niehus #48848: Example on page 60 where you are explaining how maps can be treated as sequences too:
(first {:fname "Aaron" :lname "Bedra"})
-> [:lname " ...more...
|
B5.0
01-Mar-12
|
|
| 61 |
|
#49110: Based on the result of (doc range), 'end' is optional, defaulting to infinity if not provided.
The definition of 'range' in the pdf implies 'end' is a required argument.--Cameron Donaldson #49110: Based on the result of (doc range), 'end' is optional, defaulting to infinity if not provided.
The definition of 'range' in the pdf implies ...more...
|
P1.0
14-Apr-12
|
|
|
67 |
#49300: I was using Clojure 1.4.0 with the book.
Clojure 1.4.0 is a newer version so it could be the Clojure 1.4.0 run-time causing the error.
For the code :-
(sort-by :grade > [{:grade 83} {:grade 90} {:grade 77}])
If this code is run from the REPL, works fine, no problem.
If however you run this code from a Clojure script, under Clojure 1.4.0 is generates an ArityException.
The interpreter just doesn't like this code.--G R Smith #49300: I was using Clojure 1.4.0 with the book.
Clojure 1.4.0 is a newer version so it could be the Clojure 1.4.0 run-time causing the error.
F ...more...
|
P1.0
10-May-12
|
|
|
67 |
#49301: PLEASE IGNORE ISSUE 49300.
I MISTYPED SOME CODE.
This was me being stupid.--G R Smith
|
P1.0
10-May-12
|
|
| 69 |
|
#48402: at the end of the page
"As an example of how much more general the functional index-of-any is, you could use code what we just wrote to find the third occurrence of “heads” in a series of coin flips:"
the "use code what we just wrote" should probably be "use code that we just wrote"--Zev Blut #48402: at the end of the page
"As an example of how much more general the functional index-of-any is, you could use code what we just wrote to find ...more...
|
B4.0
26-Dec-11
|
|
| 78 |
|
#48016: Page 78 on epub on nook touch. Table 2. is getting cut off. the table title stops after "functional", and the last column is "Variables". These may be the last things in the table, but the border is not showing so I am unable to tell if there are or not.--Steven Proctor #48016: Page 78 on epub on nook touch. Table 2. is getting cut off. the table title stops after "functional", and the last column is "Variables". T ...more...
|
B3.0
22-Nov-11
|
|
| 87 |
|
#48403: It might help clarify the power of "for" from map in the example by showing how map differs.
user=> (map #(format "%c%d" %1 %2) "ABCDEFGH" (range 1 9))
("A1" "B2" "C3" "D4" "E5" "F6" "G7" "H8")
user=> (for [rank (range 1 9) file "ABCDEFGH"] (format "%c%d" file rank))
--Zev Blut #48403: It might help clarify the power of "for" from map in the example by showing how map differs.
user=> (map #(format "%c%d" %1 %2) "ABCDEFGH ...more...
|
B4.0
26-Dec-11
|
|
| 96 |
|
#48953: Under the section Tail Recursion, in the code listing for the 'tail-fibo' function, the formatting rules appear to be that the bold magenta font is used for functions, special forms and macros... and normal black font for the rest. If this is the case, then the lexically bound formal parameter 'next' should not be in bold magenta font, as it's confusing for the reader. Initially it makes you think it's a function, when it's not.--Umesh Telang #48953: Under the section Tail Recursion, in the code listing for the 'tail-fibo' function, the formatting rules appear to be that the bold magenta fo ...more...
|
B5.0
17-Mar-12
|
|
| 96 |
|
#48807: In the tail-fibo example:
(fib 0N 1N n)))
Causes this error in lein repl:
java.lang.NumberFormatException: Invalid number: 0N
java.lang.NumberFormatException: Invalid number: 1N
java.lang.Exception: Unable to resolve symbol: n in this context (NO_SOURCE_FILE:0)
java.lang.Exception: Unmatched delimiter: )
java.lang.Exception: Unmatched delimiter: )
java.lang.Exception: Unmatched delimiter: )
Changing to:
(fib 0 1 n)))
Makes the example work though you're not getting BigInt literals.
System: Max OSX Snow Leopard
Lein: Leiningen 1.6.2 on Java 1.6.0_29 Java HotSpot(TM) 64-Bit Server VM
--Troy S Denkinger #48807: In the tail-fibo example:
(fib 0N 1N n)))
Causes this error in lein repl:
java.lang.NumberFormatException: Invalid number: 0N
java.l ...more...
|
B4.0
25-Feb-12
|
|
| 109 |
|
#48017: Page 109 in epub on nook touch. The section title for 3.5 is cut off from rendering, and does not wrap. It shows "3.5 Calling Structure-Specific Func-", the "tions" part is not displayed at all.--Steven Proctor #48017: Page 109 in epub on nook touch. The section title for 3.5 is cut off from rendering, and does not wrap. It shows "3.5 Calling Structure-Speci ...more...
|
B3.0
22-Nov-11
|
|
| 127 |
|
#49122: Last word of the first paragraph under 5.4's "The Unified Update Model"
"Tabler" should be "Table"--Cameron Donaldson
|
P1.0
16-Apr-12
|
|
| 130 |
|
#48027: The Sharp is not getting rendered after the C and the flat is not getting rendered after the D. Those are non-printable characters it would seem. In the PDF it is just showing a space, and when I look at it on the nook touch, it is showing a the non-printable unfilled rectangle. It is in the sentence: "The pitch will be represented by a keyword like :C, :C#, :Db, which represent the notes C, C (C sharp), and D (D flat), respectively."--Steven Proctor #48027: The Sharp is not getting rendered after the C and the flat is not getting rendered after the D. Those are non-printable characters it would s ...more...
|
B3.0
23-Nov-11
|
|
| 134 |
|
#48780: The sentence "When you call def or defn, you create a dynamic var, often called just a var." is somewhat misleading.
A var is only dynamic if it has the :dynamic meta attribute set.--David Leung (@davleung) #48780: The sentence "When you call def or defn, you create a dynamic var, often called just a var." is somewhat misleading.
A var is only dynamic ...more...
|
B4.0
19-Feb-12
|
|
| 140 |
|
#49127: "Line 15 returns a vector with the snake, apple, and time"
should read
"Line 15 returns a vector with the snake, apple, and timer"--Cameron Donaldson
|
P1.0
18-Apr-12
|
|
| 150 |
|
#48018: Page 150 in epub on nook touch. Chapter 5. The title of the chapter is cut off and not rendering the complete chapter name. It is rendering "Protocols and Data-".--Steven Proctor #48018: Page 150 in epub on nook touch. Chapter 5. The title of the chapter is cut off and not rendering the complete chapter name. It is rendering ...more...
|
B3.0
22-Nov-11
|
|
| 150 |
|
#49066: very very minor suggestion - I think the line "Clojure’s spit and slurp I/O functions are built on two abstractions, reading and writing." at the top of the page should read "Clojure’s slurp and spit I/O functions are built on two abstractions, reading and writing." , as in their minds, people would tend to implicitly order the abstractions the same as the I/O functions mentioned. Overall, the section clarifies this, but it would read better if the ordering of the I/O functions was the same as the abstractions mentioned associated with them.--Umesh Telang #49066: very very minor suggestion - I think the line "Clojure’s spit and slurp I/O functions are built on two abstractions, reading and writing." at ...more...
|
B5.0
05-Apr-12
|
|
| 161 |
|
#48015: Page 161 of epub on nook touch. The cryptovault.clj code formatting is off with the line wraps weird. The "... define method body here ...)" is having wrapping or newline issues. It winds up displaying, with the '/n' for where the line breaks, "../n. define method body here ../n.)". It is doing that on the init-value, vault-output-stream, vault-input-stream method declarations.--Steven Proctor #48015: Page 161 of epub on nook touch. The cryptovault.clj code formatting is off with the line wraps weird. The "... define method body here ...)" ...more...
|
B3.0
22-Nov-11
|
|
| 166 |
|
#48431: This may or may not be a technical error but even when copy-and-pasting sample code (and/or typing it manually from the book) I get the following message twice:
user=> CompilerException java.lang.RuntimeException: Unable to resolve symbol: this in this context, compiling:(NO_SOURCE_PATH:21) --Kiyu Gabriel #48431: This may or may not be a technical error but even when copy-and-pasting sample code (and/or typing it manually from the book) I get the follow ...more...
|
B4.0
30-Dec-11
|
|
| 174 |
160 |
#48890: src/examples/cryptovault.clj
(init-vault [vault]
should read
(defn init-vault [vault]
--Ernesto Schirmacher
|
B5.0
05-Mar-12
|
|
| 175 |
161 |
#48891: The two method definitions in the code listings are missing the defn:
(vault-output-stream [vault] SHOULD READ (defn vault-output-stream [vault]
and
(vault-input-stream [vault] SHOULD READ (defn vault-input-stream [vault]--Ernesto Schirmacher #48891: The two method definitions in the code listings are missing the defn:
(vault-output-stream [vault] SHOULD READ (defn vault-output-stream [ ...more...
|
B5.0
05-Mar-12
|
|
| 201 |
|
#48530: You use ::acc/Checking in the namespace corresponding to the one aliased to acc in namespace user. Besides this, I think it is confusing to use :: in namespace qualified keywords.--Juan Manuel Gimeno Illa #48530: You use ::acc/Checking in the namespace corresponding to the one aliased to acc in namespace user. Besides this, I think it is confusing to us ...more...
|
B4.0
15-Jan-12
|
|