Syllabus:
Practice.
Introduction to ML: basic types, functions, polymorphism, recursion,
equality types, structured types, pattern matching,
exceptions. datatypes, abstract types, references and iteration.
Theory. Introduction to the lambda-calculus:
syntax and informal semantics, conversion rules, representation
of
numbers and data-structures, combinators and combinator-reduction
as an implementation technique.
Case studies. Lexical analysis, parsing, representing the
lambda-calculus, the SECD machine (maybe others, if time permits).
Assessed Exercise for Part II (General) candidates [54K JPEG image].
Lecture notes for this course (104 pages of compressed postscript)
ML examples from the Lecture notes
Lecture notes for Larry Paulson's course on Foundations of Functional Programming.
Transparencies
Lecture 1 (19 January, 1996)
Lecture 2 (22 January, 1996)
Lecture 3 (24 January, 1996)
Lecture 4 (26 January, 1996)
Lecture 5 (29 January, 1996)
Lecture 6 (31 January, 1996)
Lecture 7 (2 February, 1996)
Lecture 8 (5 February, 1996)
Lecture 9 (7 February, 1996)
Lecture 10 (9 February, 1996)
Lecture 11 (12 February, 1996)
Lecture 12 (14 February, 1996)
Web page for 1997 course taught by John Harrison