# 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).