Introduction to Computing
Explorations in Language, Logic, and Machines
David
Evans
Errata
- Solution to Exercise 2.12 - the fourth rule should be MoreDigits ::= Digit MoreDigits. (Thanks to Ervin Varga) (22 June 2019).
- Exercise 2.14 - letterDigitHyphen not defined! (corrected 2009-12-29)
- Exercise 3.8 - the example is incorrect! It says, "For example, (xor true true) should evaluate to false and (xor (< 3 5) (= 8 8)) should evaluate to true.". Actually, (xor (< 3 5) (= 8 8)) should evaluate to false since both of the inputs are true. (Thanks to Awab Osman) (5 July 2018)
- p. 100: list-increment 1 2 (corrected sometime in 2010)
- p. 130: (thanks to Anna Slagle) "The right output bit (r_0) is 1 when exactly one of the input bits is a 1: r_0 = (or (and (not A) B) (and A (not B))" (corrected sometime in 2010)
- p. 152 n = 38 (thanks to Kristine Dell)
- p 166 "xists" (corrected 2009-12-29)
- Chapter 9 - the Charme interpreter code does not follow python naming conventions
- Chapter 8 (p. 172) - the code for merge-indexes has 3 extra closing parentheses at the end (thanks to Ezio Da Fonseca) (corrected in book sources, 2013-10-13)
- p. 199 - Before (ask counter 'adjust! 5) we need to redefine counter: (define counter (make-adjustable-counter)). (Thanks to Ezio Da Fonseca, corrected in book sources, 2013-10-22)
- p. 233 - The definition of cons should use the defined special form ifp, instead of if:
(define cons (lambda (a b) (lambda (p) (ifp p a b))))
(Thanks to Ervin Varga) (24 June 2019).