Structure and Interpretation of Computer Programs by Harold Abelson - WordSea