Sicp 2.1.1