these notes just don't stop... trying to generalize (double) to take two arguments...
can't do it without being able to return a DATA STRUCTURE? (i.e., a non-scalar)
Exercise 1.42 - a one-liner (compose) that is going to be reused in multiple upcoming exercises
forgot to note the introduction of (error) in 1.3.3
Exercise 1.43: repeated application of a function
Exercise 1.43 'enrichment' - proud to say that I've implemented iterative and 'fast-squaring' versions of (repeated). This is all really made possible by easily-extensible test code
added error-checking to make this production-quality
(even?) is actually a built-in function