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
3 09.11. modules, strings, list comprehensions, recursive functions
4 16.11. user-defined types, algebraic data types, trees, input and output
5 23.11. lambda-calculus, encoding data types as lambda-terms
6 30.11. evaluation strategies, abstract data types, sets, binary search trees
7 07.12. induction, reasoning about functional programs, formal verification
8 14.12. efficiency, tupling, tail recursion, guarded recursion, property-based testing
9 11.01. combinator parsing / functional parsers
10 18.01. types, type checking, unification, type inference
11 25.01. implementing a type checker
01.02. 1st exam (12:15-14:00, HSB 1, register by January 18, 2019)


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