Solutions to SICP book exercises