Recap (substitution rules so far!)

  1. Apply functions when all arguments are values
  2. When given a choice, evaluate the leftmost expression first
  3. (f v1…vn) ⇒ v when f is built-in
  4. (f v1…vn) ⇒ exp’ when (define (f x1…xn) exp) occurs to the left
  5. id ⇒ val when (define id val) occurs to the left
  6. (cond [false exp] …) ⇒ (cond …)
  7. (cond [true exp] …) ⇒ exp
  8. (cond [else exp]) ⇒ exp
  9. (and false …) ⇒ false
  10. (and true …) ⇒ (and …)
  11. (and) ⇒ true
  12. (or true …) ⇒ true
  13. (or false …) ⇒ (or …)
  14. (or) ⇒ false