Scheme educational exercises from MIT SICP