Review: Structure and Interpretation of Computer Programs — LessWrong