SICP Ch. 4.