Skip to content

Latest commit

 

History

History
60 lines (51 loc) · 1.76 KB

FP.md

File metadata and controls

60 lines (51 loc) · 1.76 KB

Agenda

  • 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

Tematy

  • 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
  • Dobre praktyki

    • używanie abstrakcji (wymaga wiedzy!)
    • funkcje totalne
    • najpierw typy
    • newtype wrappery
    • modelowanie efektów na typach
  • Ćwiczenia