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 viii Last paragraph |
"His first academic paper, written in 1969 ...". That may have been the first paper he wrote after becoming a professor, but his Quicksort publications in 1961 and especially the one in 1962 were very important; he also published in 1966 and 1968 -- see http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/h/Hoare:C=_A=_R=.html . |
Paul McJones | Jan 04, 2011 |
Printed | Page 183 middle of the page |
"item lookup( key )" should probably be "item.lookup(key)" (note the dot between the object and the method) |
Fredrik Winkler | Sep 23, 2012 |
Printed | Page 188 3rd paragraph |
member :: [a] -> Bool should be member :: a -> [a] -> Bool. |
Paul McJones | Jan 11, 2011 |
Printed | Page 188 4th paragraph |
In ML, every type variable begins with a prime ('), and type variables for equality types begin with at least two primes ("). So the signature for member should be member :: ''a -> [''a] -> Bool. This is still mixing Haskell and ML notation; in ML it would be member : ''a -> ''a list -> bool or member : ''a * ''a list -> bool (depending on whether or not it was "curried"). |
Paul McJones | Jan 11, 2011 |
Printed | Page 188 9th line from bottom of page |
The Java version of min needs a return keyword in each branch of the if statement, or it could be rewritten with a single return statement containing a conditional operator. |
Paul McJones | Jan 11, 2011 |
Printed | Page 188 near the bottom of the page |
The Java example is missing the return keyword in two places. Also, the method in the Comparable interface is called compareTo, not just compare. Futhermore, "T extends Comparable<T>" is overly restrictive. Here is the correct code: |
Fredrik Winkler | Sep 23, 2012 |
Printed | Page 189 9/10ths down the page |
It says "(take a function from integer to bool...". That should say "from integer to integer". |
jjinux | Jul 16, 2011 |
Printed | Page 189 Bottom of page and top of next page |
The book says that if a function has the type "m :: forall a b. (a -> b) -> [a] -> [b]", that implies "m f xs = map f (m id xs) = m id (map f xs)". I don't think that's true. Here's some psuedocode that contradicts this: |
jjinux | Jul 16, 2011 |
Printed | Page 189 near the bottom of the page |
"take a function from integer to bool" should be "take a function from integer to INTEGER", as the type of the function above clearly shows. |
Fredrik Winkler | Sep 23, 2012 |
Printed | Page 368 Top of the page |
It says "language text". It should be "language TeX". |
jjinux | Jul 16, 2011 |
Printed | Page 405 7th paragraph |
In two sentences (about fonts and graphic engines), John Warnock uses the pronoun "they" without an obvious referent. I assume he is referring to the company Macromedia that developed Flash and that was acquired by Adobe in 2005. |
Paul McJones | Jan 18, 2011 |
Printed, PDF | Page 447 James Gosling part |
James Gosling is not an author of Emacs. He just made Emacs implementation known as Gosling Emacs. |
bergentroll | Aug 29, 2017 |
Printed, PDF | Page 452 4rd paragraph |
I believe, that "ShoulderCrop" should be the second "ShoulderCorp". |
bergentroll | Aug 29, 2017 |