Programowanie funkcyjne w języku Haskell
Czas trwania szkolenia:5 dni (40h)
Kod kursu:HASKELL/FN
Poziom zaawansowania:
O szkoleniu Programowanie funkcyjne w języku Haskell
W cenie otrzymasz:
- Materiały szkoleniowe
- Certyfikat ukończenia szkolenia
- W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Dla kogo?
- Programiści chcący tworzyć aplikacje z użyciem paradygmatu funkcyjnego
- Programiści chcący zwiększyć efektywność codziennej pracy oraz poznać nowe sposoby budowania abstrakcji i rozwiązywania problemów
Wymagania
- Podstawowa umiejętność programowania w dowolnym języku
Zalety
- Warsztatowy charakter zajęć - nauka przez praktykę
- Zwrócenie szczególnej uwagi na obowiązujące konwencje oraz dobre praktyki
- Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
- Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
- Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Cele szkolenia
- Przyswojenie składni języka Haskell, poznanie obowiązujących konwencji kodowania oraz najważniejszych idiomów programistycznych
- Kompleksowe wprowadzenie do funkcyjnego paradygmatu programowania
- Poznanie najważniejszych elementów SDK
- Zapoznanie z dostępnymi narzędziami deweloperskimi
Program
Programowanie funkcyjne
- Definicja, założenia, zalety, wyzwania
- Podstawy rachunku lambda
- Wyrażenia i ich ewaluacja
- Czyste funkcje
- Częściowa aplikacja i currying funkcji
- Niezmienność
- Neutralność referencyjna
- Rekurencja
- Funkcje wyższego rzędu i kompozycja
- Funkcje polimorficzne
- Funkcyjne struktury danych
Podstawy języka Haskell
- Przygotowanie środowiska
- Tworzenie i konfiguracja projektu
- Typy wbudowane
- Funkcje i wyrażenia
- Operatory
- Pattern matching
- Wyrażenia logiczne (if-then-else, case, guards)
- Definiowanie typów niestandardowych
- Zastosowanie rekurencji
- Wykorzystanie biblioteki standardowej
- Organizacja kodu z użyciem modułów
- Wykorzystanie zewnętrznych zależności
Funkcyjne budowanie abstrakcji
- Kompozycja funkcji w praktyce
- Typeclasses
- Algebraic Data Types (ADT)
- Praca z listami i drzewami
- Elementy algebry abstrakcyjnej m.in. magma, semigroup, monoid, group, semigroup
- Functors, Applicative Functors, Traversables
- Monads
Programowanie funkcyjne w realnym projekcie
- Synchroniczne i asynchroniczne efekty uboczne
- Interakcja ze środowiskiem zewnętrznym / poprawne wykorzystanie kodu powodującego efekty uboczne
- Zarządzanie stanem
- Architektura projektu