Programowanie funkcyjne

Prowadzący: Krzysztof Gogolewski

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.

O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License