29 July 2025: Aart Middeldorp receives two prestigious research awards

In this year at the CADE conference, Aart Middeldorp was awarded with both the Herbrand Award and the in combination with Nao Hirokawa, he also receiv

10 November 2022: CL congratulates Thomas Oberroither

Thomas Oberroither is the winner of the Best Bachelor Thesis award of the academic year 2021/2022. He was awarded at the inday students for his thesis

18 August 2024: 4 year PhD position available

A 4 year PhD position is available. Click here for details.

29 August, 2023: Johannes Niederhauser completes his master studies

Johannes Niederhauser successfully defends his master thesis, entitled “Left-linear Completion with AC Axioms”. Congratulations. We are delighted that

Advanced Functional Programming

Advanced Functional Programming

Bachelor Program

VU3 - WS 2025/2026 - 703139


This course will cover the following topics: types and type-inference, functors and monads, parsing, error handling, concurrency, profiling, functional data structures and algorithms, etc.

Language: English | Literature: See slides | Prerequisites: Basic knowledge of functional programming 

 {loadmoduleid 17}

Slides and Haskell-Sources

Week Date Topics Slides Sources
01 08.10 Organisation and Introduction, Strict- and Lazy-Evaluation    
02 15.10 Type-Checking and Type-Inference    
03 22.10 Type-Inference in Haskell, Kinds and Explicit Foralls    
04 29.10 Functor, Record Syntax, Case Study: A Simple Parser    
05 05.11 Monads in General, State Monads    
06 12.11 Evaluation of Monadic Code, Example: Tseitin, Error Monads    
07 19.11 Parsing in General, Parsec    
08 26.11 Backtracking during Parsing, Applicative Functors, Monad Transformers  sskf  
09 03.12 System Programming, Exceptions    
10 10.12 Introduction to Parallelism and Concurrency    
11 07.01 Concurrent Channels, Asynchronous Actions, Cancellations and Timeouts    
12 14.01 Profiling, Efficient Data Structures    
13 21.01 Q & A    
14 28.01 Exam    
 
Evaluation

The course will be graded based on weakly exercises (50 %) and based on a final exam (50 %). It is not required to obtain positive grades in both parts.

The exam will consist of programming exercises (on paper) and non-programming exercises.
For the programming exercises, you do not have to learn all Haskell documentation pages by heart. In particular, in the exam no names of imports will be required. It is planned that several functions—that should be used in the exam—are explicitly stated (by their name and sometypes by their type).

Feedback

From this page you can send anonymous feedback. 'Anonymous' means that we cannot identify the sender of the message – therefore, do not use feedback to ask questions for which you would like a direct answer.

Summer 2025 Bachelor Program

Summer 2025

Bachelor Program

Course numberType/hoursSemesterTitle
703026 + 703027 VO3 + PS2 SS 2025 Logic
703083 + 703084 VO3 + PS2 SS 2025 Program Verification
703141 VU3 SS 2025 Term Rewriting

Summer 2025 Master Program

Summer 2025

Master Program

Course numberType/hoursSemesterTitle
703304 + 703305 VO2 + PS2 SS 2025 Constraint Solving
703319 SE2 SS 2025 Research Seminar in Logic and Learning: CL/TCS
703360 VU3 SS 2025 Semantics of Programming Languages