The Author Online Book Forums are Moving

The Author Online Book Forums will soon redirect to Manning's liveBook and liveVideo. All book forum content will migrate to liveBook's discussion forum and all video forum content will migrate to liveVideo. Log in to liveBook or liveVideo with your Manning credentials to join the discussion!

Thank you for your engagement in the AoF over the years! We look forward to offering you a more enhanced forum experience.

Susan Harkins (424) [Avatar] Offline
#1
Please post errors in the published version of Clojure in Action, Second Edition here. We'll compile and publish a comprehensive list for everyone's convenience. Thank you!

Susan Harkins
Errata Editor
Manning Publications
Francis Avila (16) [Avatar] Offline
#2
At the end of section 8.1.1, page 189, the final code block in the section is:

        (take 10 (drop 10000 (do-to-all square (range 11000))))
        ;=> (100000000 100020001 100040004 100060009 100080016 100100025 100120036
             100140049 100160064 100180081)


Should be:

        (take 10 (drop 10000 (map square (range 11000))))
        ;=> (100000000 100020001 100040004 100060009 100080016 100100025 100120036
             100140049 100160064 100180081)

Francis Avila (16) [Avatar] Offline
#3
In section 3.3.3, page 71, the phrase that reads:

Now, if you wanted to write a function that instead checked if the first of two arguments was smaller than the second


Should instead read:

Now, if you wanted to write a function that instead checked if the first of two arguments was smaller than or equal to the second
Francis Avila (16) [Avatar] Offline
#4
In section 11.5.2, page 293, the following sentence should be stricken:

You used a similar approach when you defined the remote worker framework, where you stored computations as anonymous functions that were executed on remote servers.


This sentence refers to an exercise in the first edition which was removed in the second edition.
Francis Avila (16) [Avatar] Offline
#5
In section 7.1.3.5, page 175, there is a code section that reads:

(def-logged-fn daily-report [the-day]
;; code to generate a report here
)


The the-day in this snippet should instead read now.

Also, the following sentence ("Now, see what happens if you use the function in the following way:") should instead read "Suppose you were to use this function in the following way:" because this example is not runnable in the context in which it appears.

For a more thorough illustration of variable capture in the context of this particular example, see this post.