update sicp exercise.