Exercise solutions from Structure and Interpretation of Computer Programs