Errata
The errata list is a list of errors and their corrections that were found after the product was released.
The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.
Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update
Version | Location | Description | Submitted by | Date submitted |
---|---|---|---|---|
Printed | Page 19 2nd paragraph |
Pages 19 and 21 (perhaps others) discuss "creating symbols" by means of def. This phrasing is imprecise. It is the Clojure reader that creates symbols during the process of reading S-expressions: (class (read-string "alice")) => clojure.lang.Symbol |
David Sletten | Feb 15, 2021 |
Printed | Page 20 Multiple |
The str function is used repeatedly without having yet been introduced. It is not explained until pg. 37. |
David Sletten | Feb 15, 2021 |
Printed | Page 48 map's explanation related to side effect of println |
original is written as: |
Anonymous | Feb 28, 2016 |
Printed | Page 50 2nd paragraph |
The text states that "reduce will run until one of the input collections is empty". Unlike the map function, which will operate over multiple collections, the reduce function only operates over a single collection. |
David Sletten | Feb 15, 2021 |
Printed | Page 57 Multiple |
This page makes multiple references to the "case function". As with all operators that evaluate forms conditionally, this can not be true. Functions evaluate all of their arguments. case is a macro. |
David Sletten | Feb 15, 2021 |
Printed | Page 66 In the middle of the page |
"... and we assign an error handler with the set-error-handler-fn! function" |
Juraj Martinka | Apr 09, 2016 |
Printed | Page 70 Multiple |
The first Java example is puzzling. First, it's not clear what the point of calling the String constructor on a String literal is. Secondly, to make the Java more consistent with the Clojure example, wouldn't it be more straightforward to simply illustrate "caterpillar".toUpperCase()? |
David Sletten | Feb 15, 2021 |
Printed | Page 73 2nd paragraph |
Page 73 refers to "a function called cond", and page 87 mentions "a deftest function". Both cond and deftest are macros. |
David Sletten | Feb 15, 2021 |
Printed | Page 106 Bottom half |
In the summary of code in the core.clj file, the function random-add is mistakenly redefined. It has the two args to repeat swapped, which renders it useless for the purpose of introducing a delay to the system. This function is correct on the previous page (pg. 105). |
David Sletten | Feb 15, 2021 |
Printed | Page 111 3rd paragraph |
Under the "Creating a Web Server with Compojure" section the paragraph starts: |
Maria Kousta | Dec 20, 2017 |
Printed | Page 123 2nd paragraph |
The 2nd paragraph ends with: |
Maria Kousta | Dec 22, 2017 |
Printed | Page 147 Multiple |
There are a couple of typos on this page: |
David Sletten | Feb 25, 2021 |
Printed | Page 149 n/a |
Chapter 8 is a short chapter, and your readers can't expect you to provide complete coverage of every detail related to writing and using macros. However, it is a significant oversight that the chapter makes no mention of splicing values into macro templates via ~@. |
David Sletten | Feb 25, 2021 |
Printed | Page 177 first paragraph |
At the beginning of the page, there's a repetition which looks like a copy & paste error: |
Juraj Martinka | Apr 29, 2016 |
PDF, ePub, Mobi | Page 12620 text |
Typos: |
Anonymous | Sep 17, 2019 |
Safari Books Online | 123123 Chapter 6 |
(defn random-add [] |
Mike Albert | Jan 20, 2020 |