Structure and Interpretation of Computer Programs, Gerald Jay Sussman, Hal Abelson, and Julie Sussman