start of sicp 1.1.6