Worked exercises from SICP: Structure and Interpretation of Compter Programs