Introduction to Functional Programming (1995/96)

Mike Gordon

Computer Science Tripos, Part II (General) and Diploma in Computer Science
Twelve lectures beginning on Friday January 19, 1996
Monday, Wednesday & Friday at 12am in the Heycock Lecture Room

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 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)

Reading List

Web page for 1995 course
Web page for 1997 course taught by John Harrison


Maintained by Mike Gordon.
This page last updated by Mike on Tue Jan 29 2013.
(Just fixed broken links and deleted obsolete ones.)