Course Instructor: Mihnea Muraru
Syllabus:
- Functional programming.
- Untyped Lambda Calculus.
- Recursion and fixed-point combinators.
- Operational semantics as a language specification tool.
- Typed Lambda Calculus.
- The "type system" concept.
- Particular monomorphic types: Boolean, natural numbers, product.
- Recursive types: lists.
- Parameterized polymorphism.
- System F.
- Type reconstruction: unification, principal types, typing rules.
- The Fw system.
- Particular problems: types, classes and functors in Haskell.