solution to the "The Structure and Interpretation of Computer Programs" exercises