CS 15-212: Fundamental Structures of Computer Science II
We finish our discussion of structural induction from the last lecture, and look more closely at programming techniques for recursively defined types, including binary trees.
We also introduce the basic components of ML's module system - signatures and structures - and discuss how they are used for data abstraction. Structures are loosely analogous to classes in C++ and Java, and signatures correspond to Java interfaces. These constructs are central to ML's module system, which allows large programs to be organized hierarchically into separate units.