STRUCTURE AND INTERPRETATION OF COMPUTER PROGRAMS - Abelson, Harold (MIT Press, 1985)