Vyučující
|
|
Obsah předmětu
|
1) Scheme - datové struktury (s-výrazy) 2) Scheme - funkce a speciální formy 3) Scheme - rekurze a práce se seznamy 4) Scheme - lambda funkce a currying 5) Scheme - funkcionály (map, zip, fold) 6) Scheme - makra a lenivé vyhodnocování (proudy) 7) Scheme - kontinuace a korutiny 8) Haskell - unifikace vzorů 9) Haskell - statický typový systém 10) Haskell - komprehenze a lenivé vyhodnocování 11) Haskell - algebraické datové typy 12) Haskell - typové třídy 13) Haskell - IO monády 14) Haskell - monády (principy, seznamové monády)
|
Studijní aktivity a metody výuky
|
nespecifikováno
|
Výstupy z učení
|
Kurs je zaměřen na základní principy a prostředky funkcionálního programování. Základem je detailní popis jazyka Scheme a základní přehled jazyka F# resp. Haskellu (jako zástupce moderních funkcionálních jazyků). Hlavním cílem však je praktická znalost funkcionálních programovacích technik (rekurze, funkcionály, uzávěry, lenivé vyhodnocování) a jejich využití v současných objektově orientovaných jazycích (jako je C# nebo Python), které jsou sice primárně imperativní, ale podporují i mnohé funkcionální konstrukce (a vývoj vede k jejich dalšímu rozšiřování).
|
Předpoklady
|
nespecifikováno
|
Hodnoticí metody a kritéria
|
nespecifikováno
Seminární práce: řešení algoritmu v jednom z vyučovaných programovacích jazyků
|
Doporučená literatura
|
-
Skoupil D. Programy a projekty v jazyce Scheme I. Katedra informatiky PřF UP Olomouc.
|