Exercises from MIT's Structure and Interpretation of Computer Programs