Bachelor-Seminar: Functional Pearls (WiSe 2025/26)
Instructor: Dr. Martin Desharnais-Schäfer
Content
Functional programming (as in, e.g., Haskell, OCaml, Standard ML) has many features which make it unique and useful in a variety of ways. When a specific use case is put together well and highlights these features, a scientific paper may be designated to be a "Pearl of functional programming". For this seminar, you will choose one of these pearls as the topic for you seminar paper and talk.
Prerequisites
It helps to be familiar with basics of functional programming (e.g., already have some experience with a functional programming language, passed ProMo).
Organisation
There will be between a mandatory session at the beginning of the semester, where the organization of the course will be presented in details, and each student's topic will be fixed.
Topics can be chosen from among the papers designated to be a "Pearl of Functional Programming"; an incomplete list can be found here. Alternatively more functional pearls can be found in the proceedings of the International Conference on Functional Programming (ICFP): ICFP 2025, ICFP 2024, ICFP 2023, ICFP 2022, ICFP 2021, ICFP 2020, ICFP 2019, ICFP 2018, ICFP 2017, ICFP 2016, etc.
After you had some time to familiarize yourself with the topic, there will be a mandatory session of short 90-second talks where you give a one-slide summary of your topic.
At the end of the semester, there will be one to three mandatory sessions for the seminar talks. In between there will be no scheduled meetings, but of course the instructor will be available for questions on your topics, either virtually via email and Zulip or in person.
Examination
The examination consists of two parts:
- A written seminar paper on your chosen topic (60 % of the grade), the length of which must be between 7000 and 14 000 characters.
- A talk (40 % of the grade) of 25 minutes plus 5 minutes discussion. The talk should cover some but possibly not all things written about in the seminar paper.
Submissions can be both in German and in English, the languages of the talk and the paper may even differ depending on your preference.
Schedule
- 2025-10-24: In-person meeting for practicalities and topic assignment (slides)
- 2025-11-21?: In-person meeting for lightning talks and guidelines for seminar paper and talk (date subject to change)
- 2025-12-19: Virtual submission of seminar-paper drafts and start of review process shortly after
- 2026-01-09: Virtual submission of reviews
- 2026-02-06?: In-person meeting for seminar talks (date subject to change)
- 2026-02-27: Virtual submission of seminar papers
Materials
The slides of the first in-person meeting are available above under Schedule.
The chosen functional pearls are the following:
- Sebastian Fischer, Frank Huch, and Thomas Wilke. 2010. A play on regular expressions: functional pearl. In Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming (ICFP '10). DOI: 10.1145/1863543.1863594
- David Binder, Marco Tzschentke, Marius Müller, and Klaus Ostermann. 2024. Grokking the Sequent Calculus (Functional Pearl). Proc. ACM Program. Lang. 8, ICFP, Article 250 (August 2024). DOI: 10.1145/3674639
- Gan Shen, Shun Kashiwa, and Lindsey Kuper. 2023. HasChor: Functional Choreographic Programming for All (Functional Pearl). Proc. ACM Program. Lang. 7, ICFP, Article 207 (August 2023). DOI: 10.1145/3607849
- Maximilian Doré. 2025. Linear Types with Dynamic Multiplicities in Dependent Type Theory (Functional Pearl). Proc. ACM Program. Lang. 9, ICFP, Article 262 (August 2025). DOI: 10.1145/3747531
- Alejandro Russo. 2015. Functional pearl: two can keep a secret, if one of them uses Haskell. In Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming (ICFP 2015). DOI: 10.1145/2784731.2784756
- Brent A. Yorgey. 2012. Monoids: theme and variations (functional pearl). SIGPLAN Not. 47, 12 (December 2012). DOI: 10.1145/2430532.2364520
- Richard Bird. 2006. FUNCTIONAL PEARL: A Program to Solve Sudoku. Journal of Functional Programming 16, no. 6 (2006). DOI: 10.1017/S0956796806006058
