Harold Abelson

Structure and Interpregation of Computer Programs