Theoretical foundations of functional programming: the lambda-calculus, beta-reduction, confluence, and reduction strategies. Programming syntax: solving recursive equations with the Y-combinator, let and letrec, types, datatypes, and patterns. Programming in a functional language: recursion patterns, useful combinators, maps, and folds, for datatypes. Example applications: recursive descent parsing, unification, combinatorial algorithms, theorem proving.
This course may not be repeated for credit.
Prerequisite(s)
- Computer Science 313 and one of Computer Science 349 or 449.
Sections
| LEC 1 | TR 15:30 - 16:45
| | Robin Cockett | | |
| TUT 1 | MW 12:00 - 12:50
| | | | |
| TUT 2 | MW 17:00 - 17:50
| | | | |
This course will be offered next in
Winter 2021.