en | de

Functional Programming

bachelor program

VO2 + PS1  WS 2018/2019  703024 + 703025


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


Exercises are to be found at the end of the slides of each lecture.

lecture date topics slides notes sources solutions
1 05.10. historical overview, Haskell introduction, first steps pdf (x1, x4) html
2 12.10. type classes, lists, polymorphism, pattern matching, higher-order functions pdf (x1, x4) archive html
3 09.11. modules, strings, list comprehensions, recursive functions pdf (x1, x4) archive html
4 16.11. user-defined types, algebraic data types, trees, input and output pdf (x1, x4) archive html
5 23.11. lambda-calculus, encoding data types as lambda-terms pdf (x1, x4) pdf html
6 30.11. evaluation strategies, abstract data types, sets, binary search trees pdf (x1, x4) archive html
7 07.12. induction, reasoning about functional programs, formal verification pdf (x1, x4) pdf archive html
8 14.12. efficiency, tupling, tail recursion, guarded recursion, property-based testing pdf (x1, x4) pdf archive html
9 11.01. combinator parsing / functional parsers pdf (x1, x4) archive html
10 18.01. types, type checking, unification, type inference pdf (x1, x4) pdf archive html
11 25.01. lazy evaluation, infinite data structures pdf (x1, x4) archive
01.02. 1st exam (12:15-14:00, HSB 1, register by January 18, 2019) pdf
01.03. 2nd exam (12:15-14:00, HSB 1, register by February 15, 2019) pdf
27.09. 3rd exam (12:15-14:00, HSB 1, register by September 13, 2019)


Amongst other sources the course incorporates material from the following books: