Structure and Interpretation of Computer Programs
Harold Abelson & Gerald Jay Sussman & Julie Sussman