(define true (lambda (t) (lambda (f) t)))
(define false (lambda (t) (lambda (f) f)))
- [8] Define a "neg" operator that negates "true" and "false".
+* [8] Define a "neg" operator that negates "true" and "false".
Expected behavior:
(((neg true) 10) 20)
evaluates to 10.
- [9] Define an "and" operator.
+* [9] Define an "and" operator.
- [10] Define an "xor" operator. (If you haven't seen this term before, here's a truth table:
+* [10] Define an "xor" operator. (If you haven't seen this term before, here's a truth table:
true xor true = false
true xor false = true
)
- 11. Inspired by our definition of boolean values, propose a data structure
+* [11] Inspired by our definition of boolean values, propose a data structure
capable of representing one of the two values "black" or "white". If we have
one of those values, call it a black-or-white-value, we should be able to
write: