View the course on GitHub

About the Course

This seminar course focuses on the principles and practice of purely functional programming. The course features the CakeML language and the Ott tool for defining languages and inductive relations.

Seminar Slides

Seminar Topic Slides and other resources
1 Functional languages, abstract syntax trees, variable binding, and inductive definitions
2 Untyped lambda calculus, operational semantics, combinators, encodings
3 Simply typed lambda calculus and beyond (OCaml Light, CakeML)
4 Data types
5 From primitive to general recursion
6 Proofs of function properties by structural induction
7 Function property specification and contracts
8 Abstract types
9 Module types and typeclasses
10 Purely functional data structures, I
11 Purely functional data structures, II
12 Research paper presentations Presented papers:
13 Advanced topics: Church's simple types & dependent types
14 Tool and language demonstrations

Homeworks

Related Research Papers

Resources