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 B5.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.

Key: Typo Tech. Error Suggestion Not a problem Next edition

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:  

(To find out what version you have, look at the copyright page, a few pages in from the front of the book. If it says (say) 'Second Printing', then here it'll be P2.0. If there are interim PDF releases in that printing, they'll be 2.1, 2.2, and so on.)

PDF Paper Description Found in Fixed in
5
#51448: For consistency in description of Equality rules, use either "=", or "is equal to" exclusively. The switch happens abruptly mid-sentence. "...more...
B5.0
05-May-13
15
#51449: Remove some duplication from chapter introduction. "But the next step in understanding numbers is looking at numbers that have non-integer ...more...
B5.0
05-May-13
39

#51168: "Why is a bizzare irrational number": should be spelled "bizarre"--Tom Verhoeff

B5.0
01-Apr-13
105

#51463: Figure 11 is misnumbered. Steps 14-17 should be 13-16 to match the proof.--Ian Price

B5.0
07-May-13
112

#51465: Definition of parent relation not given in listing, but text refers to it.
"First, we have two lines that define what a parent is in terms of logic."--Ian Price

B5.0
07-May-13
113

#51466: cousin relation is duplicated across two listings.--Ian Price

B5.0
07-May-13
120
#51467: Comment for partition relation is wrong. It should read "B = C + [A] + D" since A is the pivot, and B is the original list. That said, it m...more...
B5.0
07-May-13
136
#51469: Can you provide an explanation of the use of ≨ in the set theory definitions? I expected an '=' or 'if' or 'iff', and this "less than but not ...more...
B5.0
07-May-13
153
#51480: "The easiest variation of the axiom of choice is called the well-ordering theorem." This line feels a little weird, since it is like you are i...more...
B5.0
08-May-13
160

#51479: "indunction rule" should be "induction rule"--Ian Price

B5.0
08-May-13
172
#51481: Table 3 is not symmetrical. Row j, Col b = 1(mistake). Row b, Col j = h. Row c, Col e = i. Row e, Col c = space(mistake). Row d, Col g = g. Ro...more...
B5.0
08-May-13
183

#51483: "we cake the blocks" -> "we take the blocks"--Ian Price

B5.0
08-May-13
225

#51208: 1st line of page 225: "Leibniz" is the correct name of Newtons co-inventor.--Dr. Frid Ruland

B5.0
03-Apr-13
232
#51209: That would reduce our expression to (λ x y z . + (* x x) y) 5 20 4. Next, we’d reduce the outermost λ: (+ (* 5 5) 30), which would evaluate ...more...
B5.0
03-Apr-13
236
#51061: "treated as if the expression were: “(λ square . square 4)(λ x . x×x)”.": the expression should be "(λ x . x*x) 4" (also note the asterisk ins...more...
B4.0
15-Mar-13
239
#51068: "You write functions that combine other functions in order to make it do what you want.": Does not sound right grammatically, because "it" is ...more...
B4.0
15-Mar-13
240

#51210: • And = λ x y . x y FALSE

-->

• BoolAnd = λ x y . x y FALSE--Dr. Frid Ruland

B5.0
03-Apr-13
240

#51211: • BoolNot = λ x . x FALSE TRUE*

Question on my part: what is TRUE*
Typo or special convention?--Dr. Frid Ruland

B5.0
03-Apr-13
242

#51212: In fact, we can say in general that for any NN! = N * (N-1)!.

-->

In fact, we can say in general that for any N! = N * (N-1)!.--Dr. Frid Ruland

B5.0
03-Apr-13
245

#51078: Figure 18: the two "λ y" nodes on the middle level need to be "λ x".--Tom Verhoeff

B4.0
15-Mar-13
250

#51213: last line:
a function type α→ δis a logical implication: passing

-->

a function type α→ δ is a logical implication: passing--Dr. Frid Ruland

B5.0
03-Apr-13
250

#51169: "a function type α → δis": insert a space before "is"--Tom Verhoeff

B5.0
01-Apr-13
250
#51170: "a function type α → δis a logical implication: passing a value of type α to the function implies that the return type will be β.": The "β" sh...more...
B5.0
01-Apr-13
251
#51528: "but since we know that “+” is a function with type “α → α”, we can infer that the result type of this function will be “α”" Should probabl...more...
B5.0
16-May-13
251

#51171: "First, we need modify": insert "to" after "need"--Tom Verhoeff

B5.0
01-Apr-13
251

#51172: "first parameter is type α": either change "is" into "has", or insert "of" before "type"--Tom Verhoeff

B5.0
01-Apr-13
251

#51173: "shorthand for currying. is just ...": Something is missing before "is just"--Tom Verhoeff

B5.0
01-Apr-13
252
#51214: p. 252 and 253 the examples for the simplified version of type inference rules for Type Invariance Function Type Inference Functi...more...
B5.0
03-Apr-13
252

#51174: Explain the notation involving "⊧" before using it in examples; also the use of + with contexts.--Tom Verhoeff

B5.0
01-Apr-13
253
#51529: "* is a function from a number to a number, so since we’re using x as a parameter to *" again, * is a binary operator. This should either b...more...
B5.0
16-May-13
253

#51175: "Example:λ x y ...": insert space after ":"--Tom Verhoeff

B5.0
01-Apr-13
254
#51530: "Since we don’t know what type it returns, we’ll use another new type variable u, and say y: u (function type inference). By doing function ap...more...
B5.0
16-May-13
254

#51176: "(λ x:t y: t → u. (y x): u) t → (t → u) → u": a colon is missing after "u)"--Tom Verhoeff

B5.0
01-Apr-13
255

#51177: "Let’s take another look at the types the simply typed lambda calculus.": insert "in" after "types" (or fix the grammar in some other way).--Tom Verhoeff

B5.0
01-Apr-13
255

#51178: "the following grammar ...": the given grammar does not make sense.--Tom Verhoeff

B5.0
01-Apr-13
257

#51179: "a typed LC": this seems to be the only place where the abbreviation "LC" (for Lambda Calculus" is used; write out in full.--Tom Verhoeff

B5.0
01-Apr-13
263

#51532: "And, finally, the way that we would write that a program p doesn’t halt for input i as C(p, i) = _." Underscore should be ⊥.
--Ian Price

B5.0
16-May-13
264

#51533: "Or less formally, can I write a progrm which tells" progrm -> program--Ian Price

B5.0
16-May-13
264

#51534: "C(pair(p, i)) = _." <- should be bottom--Ian Price

B5.0
16-May-13
264

#51535: Oracle definition uses Phi, but elsewhere you use O.--Ian Price

B5.0
16-May-13