Solutions to exercises in Structure and Interpretation of Computer Programs