Přeskočit na hlavní obsah
Přeskočit hlavičku

Praktické funkcionální programování

Anotace

Funkcionální styl programování je dobře zavedený, ale po celá desetiletí se většinou používal jen na univerzitách a obvykle byl považován za pěkným konceptem bez skutečné praktické aplikace. Čistě funkční jazyky, jako je Haskell, se zřídka používaly pro reálné aplikace. Právě teď prochází funkcionální styl programování jakousi renesancí. Je integrován do mnoha nejpopulárnějších multiparadigmatických jazyků jako je Python, Javascript nebo C #. Navíc se objevily a začaly se používat nové čisté funkcionální jazyky jako Scala, F # nebo Clojure. S technologiemi jako JVM (Scala) nebo .NET CLR (F #) je ještě snazší mít projekt integrující různé styly programování.

V tomto předmětu se zaměříme na praktické aspekty vývoje aplikací pomocí čistě funkčních programovacích jazyků Haskell a Elm. Jako klíčový projekt vytvoříme webový informační systém, kde bude přední část implementována v Elmu a zadní část bude v Haskellu. Budou propojeny pomocí REST Api. Kromě toho se budeme zabývat dalšími problémy, jako je použití databáze nebo zpracování různých formátů dat. Na tomto projektu bude prokázáno, že tyto funkcionální jazyky jsou vhodné pro vývoj aplikací v reálné praxi. Navíc si ukážeme, že jejich použití má některé klíčové výhody. Kromě samotného programování se také naučíme používat vybranou klíčovou infrastrukturu a nástroje podporující vývoj reálných aplikací.

Povinná literatura

[1] Bryan O'Sullivan, John Goerzen, and Don Stewart. 2008. Real World Haskell (1st. ed.). O'Reilly Media, Inc. Dostupné online: http://book.realworldhaskell.org/

[2] Lipovaca M.:Learn You a Haskell for Great Good!: A Beginner's Guide (1st ed.). No Starch Press, San Francisco, CA, USA, 2011. Dostupné online: http://learnyouahaskell.com/

Doporučená literatura

[3] Thompson S.: The Haskell: The Craft of Functional Programming (3nd ed.). Addison-Wesley Professional, October 2, 2011, ISBN-10: 0201882957 .


Jazyk výuky čeština, angličtina
Kód 460-4144
Zkratka PFP
Název předmětu česky Praktické funkcionální programování
Název předmětu anglicky Practical Functional Programming
Garantující katedra Katedra informatiky
Garant předmětu Ing. Marek Běhálek, Ph.D.