Errata

Masterminds of Programming

Errata for Masterminds of Programming

Submit your own errata for this product.

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, PDF Page 452
4rd paragraph

I believe, that "ShoulderCrop" should be the second "ShoulderCorp".

bergentroll  Aug 29, 2017 
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 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 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:

public static <T extends Comparable<? super T>> T min(T x, T y)
{
if (x.compareTo(y) < 0)
return x;
else
return y;
}

Or, more concisely:

public static <T extends Comparable<? super T>> T min(T x, T y)
{
return (x.compareTo(y) < 0) ? x : y;
}

Fredrik Winkler  Sep 23, 2012 
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)

Also, the (pseudo) signature for the lookup function is wrong, the key actually comes first:

lookup :: Key -> Map -> Maybe Value // note first the key, then the map!

And if you want to be really pedantic, this is the real signature:

lookup :: Ord key => key -> Map key value -> Maybe value

Fredrik Winkler  Sep 23, 2012 
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:

m f xs =
match [1] -> []
_ -> map f xs

That doesn't work with "m id (map f xs)".

(It's possible that I may be getting some of the details wrong since I'm submitting this errata many months after writing it down.)

jjinux  Jul 16, 2011 
Printed Page 368
Top of the page

It says "language text". It should be "language TeX".

jjinux  Jul 16, 2011 
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 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 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
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
3rd paragraph

member :: [a] -> Bool should be member :: a -> [a] -> Bool.

Paul McJones  Jan 11, 2011 
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