Working through the exercises of Structure and Interpretation of Computer Programs