My attempt at the exercises in "Structure and Interpretation of Computer Programs" http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/