Tematem seminarium jest przegląd zaawansowanych cech językow 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 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.