From the book http://mitpress.mit.edu/sicp/full-text/book/book.html