Structure and Interpretation of Computer Programs, Second Edition
Harold Abelson & Gerald Jay Sussman