Introduction to Functional Programming (1995/96)

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

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)

Reading List

Web page for 1995 course

Web page for 1997 course taught by John Harrison

Useful stuff