Functional Programming

bachelor program

VO2 + PS1  WS 2014/2015  703024 + 703025

Content

The course provides an introduction to functional programming, covering both, practical examples using OCaml (a functional language) and theoretical background.

Lecture notes can be downloaded within the university network and are also available at Studia. Studia also sells the last year's edition, which you can use, the current one only has some small mistakes corrected. Please note the new location of Studia (Zeichensaal T21b, Untergeschoss).

Schedule

week date topics slides sources exercises history
1 03.10. historical overview, OCaml introduction, first steps pdf pdf txt
2 10.10. lists, polymorphism, higher-order functions pdf pdf txt
3 17.10. modules, strings pdf tgz pdf txt
4 24.10. user-defined types, trees pdf tgz pdf txt
5 31.10. introduction to lambda calculus pdf pdf
6 6.11. lambda calculus, evaluation strategies pdf pdf txt
7 14.11. induction, reasoning about functional programs pdf pdf
8 21.11. efficiency, tail-recursion pdf pdf
9 28.11. combinator parsing / functional parsers pdf tgz pdf txt
10 5.12. types, type checking, type inference pdf pdf
11 12.12. implementing type inference pdf tgz pdf
12 9.01. lazyness pdf tgz pdf txt
13 16.01. dependent types pdf pdf
14 23.01. monads, efficiency pdf
- 30.01. 8:00-10:00 first exam HS-D
- 2.03. 14:00-16:00 second exam HSB-9
- 25.09. 14:00-16:00 third exam HSB-9
Mid term task The mid-term task is available at: pdf
The Lamda-Interpreter presented in the lectures 5 and 6 can be found here.

Literature

Amongst other sources the course incorporates material from the following books:
  • Larry C. Paulson, ML for the working programmer (2nd edition), Cambridge University Press, 1996, ISBN 9780521565431.
  • Richard Bird, Introduction to functional programming using Haskell (2nd edition), Prentice Hall Europe, 1998, ISBN 0134843460.
  • Anthony J. Field, Functional Programming, Addison-Wesley, 1988, ISBN 0201192497.
  • Bruce J. MacLennan, Functional Programming: Practice and theory, Addison-Wesley, 1990, ISBN 0201137445.
  • Chris Okasaki, Purely functional data structures, Cambridge University Press, 1999, ISBN 0521663504.
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to algorithms, The MIT Press, 2009, ISBN 9780262533058.
  • Fethi Rabhi and Guy Lapalme, Algorithms: A functional programming approach, Addison-Wesley, 1999, ISBN 0201596040.
  • Simon Thompson, The craft of functional programming, Addison-Wesley, 1996, ISBN 0201403579.