Tematem seminarium jest przegląd zaawansowanych cech językow funkcyjnych
takich jak 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 Programowanie. Przedstawione zostaną takie
zagadnienia jak m. in.:
1. Funktory aplikatywne
2. Monady i transformatory monad
3. Polimorfizm wyższego stopnia, typy egzystencjalne
4. Uogolnione algebraiczne typy danych (GADT's)
5. Programowanie generyczne
6. Embedded domain-specific languages
7. Programowanie wieloetapowe (ewaluacja częściowa, generowanie kodu)
8. Kontynuacje
9. Programowanie reaktywne
10. Typy zależne
Literatura do przedmiotu obejmować będzie wybrane artykuły naukowe z dziedziny
programowania funkcyjnego.