Functions & Abstraction
- expressions、names、functions、control
- environment diagrams
- higher-order functions、lambda
目标:把函数作为值组合,并解释 environment model。
Project:Hog
用 Python 学习 abstraction、recursion、data、state、objects 与 interpreters,而不是单纯学习 Python 语法。
Python 是主要 implementation language;Scheme 与 SQL 用来理解 programming paradigms、programs as data、interpreters 和 declarative programming,而不是另开一门语言课。
Scheme 仍然重要:Scheme Interpreter 的关键目标正是用 Python 实现一门语言的解释器。
完整经典路线;阅读 functions、data、state、objects、interpreters 与 declarative programming。
用于 lecture videos、labs、discussions、homework、四个经典 projects、复习资料与 past exams。
只作当前课程参考;它的新课程结构不替换本学期的经典 Scheme Interpreter 路线。
目标:把函数作为值组合,并解释 environment model。
Project:Hog
目标:手画调用过程,并能解释递归定义与执行成本。
重点:data abstraction,而不只是 Python list API。
Project:Cats
连接:state → mutation → iterator → lazy computation。
连接:SICP OOP ↔ 6.102 ADT / RI / Interface。
Project:Ants
Project:用 Python 构建 Scheme Interpreter。
目标:用不同范式表达“是什么”,而不总是规定“怎么做”。
control · functions · higher-order functions · decomposition
recursion · sequences · abstraction · algorithms
OOP · inheritance · abstraction · larger program organization
interpreter architecture · eval / apply · environments · semantics
abstraction、ADT、interface 与 representation invariant 在 OOP 阶段汇合:SICP 建立思维模型,6.102 强化大型软件中的契约与可维护性。
recursion、environment diagrams、Hog、Cats、Ants 与 Scheme Interpreter 尤其如此。