Solutions for SICP exercises