Felleisen, M. [et al.] How to design programs: An introduction to programming and computing - Cambridge; Massachusetts MIT Press 2001 - xxx, 693p. ISBN: 0-262-06218-6