Selected solutions to exercises from The Structure and Interpretation of Computer Programs