- Istota programowania funkcyjnego i czysto funkcyjnego
- Teoretyczne podstawy programowania funkcyjnego
- Idea programowania kierowanego typami i bezpieczeństwo dzięki typom
- Inferencja typów
- Wprowadzenie do funkcji, typów i klas typów na przykładzie języka Haskell
- Funkcje pierwszego rzędu, składanie funkcji, currying
- Algebraiczne typy danych
- Typy parametryzowane
- Przegląd klas typów
- Izolacja efektów
- Dobre praktyki
-
Istota programowania funkcyjnego i czysto funkcyjnego
- funkcje
- reużywalność
- solidność teoretyczna
- deklaratywność (intencje stają się kodem)
- abstrakcja i język komunikacji
- bezpieczeństwo dzięki nanokomponentom
- bezpieczeństwo dzięki izolacji (programowanie czysto funkcyjne)
-
Teoretyczne podstawy programowania funkcyjnego
- lambda calculi
- teoria typów
- teoria kategorii
-
Idea programowania kierowanego typami i bezpieczeństwo dzięki typom
- najpierw typy
- typy jako intencja
- typy jako specyfikacja
- typy jako język (wyszukiwanie hoogle)
- typy a efekty uboczne
-
Inferencja typów
- moc programowania statycznego i łatwość dynamicznego
- interpreter jako narzędzie współpracy przy modelowaniu systemu
-
Wprowadzenie do funkcji, typów i klas typów na przykładzie języka Haskell
- Prezentacja:
- Funkcje pierwszego rzędu, składanie funkcji, currying
- Algebraiczne typy danych
- Typy parametryzowane
- Przegląd klas typów
- Izolacja efektów
- Prezentacja:
-
Dobre praktyki
- używanie abstrakcji (wymaga wiedzy!)
- funkcje totalne
- najpierw typy
- newtype wrappery
- modelowanie efektów na typach
-
Ćwiczenia