Chapter 29: Declarative Programming Notes