Solutions for exercises from Structure and Interpretation of Computer Programs