Tematem seminarium jest przegląd zaawansowanych cech języków funkcyjnych
takich jak Ocaml, Haskell oraz Agda, a także technik programowania
wykorzystujących te cechy. Seminarium może być potraktowane jako uzupełnienie
kursu Haskella prezentowanego w ramach przedmiotu Metody Programowania, a
także rozszerzenie przedmiotu Programowanie Funkcyjne. Przedstawione zostaną
takie zagadnienia jak m. in.:
1. Polimorfizm parametryczny (Theorems for free!)
2. Typy egzystencjalne
3. Polimorfizm wyższego stopnia
4. Uogólnione algebraiczne typy danych (GADT's)
5. Embedded domain-specific languages
6. Programowanie wieloetapowe (ewaluacja częściowa, generowanie kodu)
7. Interpretery definiujące
8. Kontynuacje
9. Programowanie reaktywne
10. Typy zależne
Literatura do przedmiotu obejmować będzie wybrane artykuły naukowe z dziedziny
programowania funkcyjnego.