Reduction
---------
-Find "normal forms" for the following---that is, reduce them until no more reductions are possible. We'll write λ`x` as `\x`.
+Find "normal forms" for the following---that is, reduce them until no more reductions are possible. We'll write <code>λx</code> as `\x`.
1. `(\x \y. y x) z`
2. `(\x (x x)) z`
Recall our definitions of true and false.
-> "true" defined to be `\t \f. t`
-> "false" defined to be `\t \f. f`
+> `true` defined to be `\t \f. t`
+> `false` defined to be `\t \f. f`
In Racket, these can be defined like this:
(define false (lambda (t) (lambda (f) f)))
<OL start=8>
-<LI>Define a "neg" operator that negates "true" and "false".
+<LI>Define a `neg` operator that negates `true` and `false`.
Expected behavior:
evaluates to 10.
-<LI>Define an "and" operator.
+<LI>Define an `and` operator.
-<LI>Define an "xor" operator.
+<LI>Define an `xor` operator.
(If you haven't seen this term before, here's a truth table: