Programowanie funkcyjne
Prowadzący
Krzysztof Gogolewski (krz.gogolewski na gmailu)
Opis
Programowanie funkcyjne to sposób programowania odmienny niż imperatywny, dużo bliższy opisowi matematycznemu. Zobaczycie gdzie można używać funkcji wyższego rzędu (które mogą brać i zwracać inne funkcje); jak można programować nie używając pętli, instrukcji przypisania, ani efektów ubocznych; jak dużo mogą wyrażać typy polimorficzne i co mają wspólnego z logiką.
Zajęcia będą prowadzone w Haskellu (GHC) w formie wykładu przerywanego co jakiś czas przez ćwiczenia.
Program zajęć
- Podstawy składni Haskella, pisanie prostych programów, definiowanie funkcji przez rekursję, currying;
- Definiowanie typów, polimorfizm, dopasowanie wzorców;
- Funkcje wyższego rzędu, funkcje na listach, zapis bezpunktowy (pointfree);
- W jaki sposób w języku czysto funkcyjnym można wykonywać instrukcje wejścia-wyjścia;
- Klasy, typy wyższego rzędu, szczegóły systemu typów.
Wymagania
Wystarczy umiejętność programowania w dowolnym języku imperatywnym.
Przydadzą się laptopy, ale nie są absolutnie niezbędne.
Zadania kwalifikacyjne
Dostępne tutaj.