460-2054 – Funkcionální programování (FPR)

Garantující katedraKatedra informatiky
Garant předmětuIng. Marek Běhálek, Ph.D.
Úroveň studiapregraduální nebo graduální
Verze předmětu
Kód verzeRok zavedeníRok zrušeníKredity
460-2054/01 2019/2020 3
460-2054/02 2019/2020 3

Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi

Základním cílem předmětu bude dovednost zapsat jednoduché algoritmy pomocí funkcionálního stylu programování. Přesněji řečeno, studenti pochopí rekurzi a vybrané rekurzivní datové struktury, budou schopni využívat funkce vyššího řádu, budou schopni definovat funkce pomocí techniky pattern matching. Budou schopni používat mechanismus zapouzdření pro funkce jako jsou uzávěry či modulární rozhraní a správně rozumět proměnným a jejich lexikálnímu rozsahu platnosti v programech. Na praktické úrovni budou schopni zapsat tyto základní algoritmy v programovacím jazyce Haskell. Navíc budou schopni rozpoznat funkcionální styl programování, pochopí výhody a nevýhody tohoto stylu programování a budou schopni porovnat tento styl programování s jinými přístupy, jako je imperativní nebo objektově orientované programování.

Vyučovací metody

Přednášky
Individuální konzultace
Cvičení (v učebně)
Projekt

Anotace

Předmět seznamuje s funkcionálním stylem programování. Zahrnuje základní vlastnosti funkcionálního programování, jako je programování bez vedlejších efektu, funkce jako hodnota prvního řádu, funkce vyšších řádů, rekurze, přizpůsobení, technika pattern matching nebo uzávěry funkcí. Rovněž kurz představuje vybrané datové struktury jako je seznam nebo strom a funkcionální styl práce s těmito strukturami. Jako programovací jazyk bude použit Haskell. Je to čistě funkcionální, staticky typovaný a líně vyhodnocovaný jazyk.

Povinná literatura:

O'Sullivan B., Goerzen J., Stewart D.: Real world Haskell, O'Reilly Media, Inc. 2008. ISBN:0596514980 - zdarma k dispozici na: http://book.realworldhaskell.org/read/

Doporučená literatura:

Thompson S.: The Haskell: The Craft of Functional Programming (3nd ed.). Addison-Wesley Professional, October 2, 2011, ISBN-10: 0201882957. Lipovaca M.:Learn You a Haskell for Great Good!: A Beginner's Guide (1st ed.). No Starch Press, San Francisco, CA, USA, 2011 - zdarma k dispozici na: http://learnyouahaskell.com/

Prerekvizity

Předmět nemá žádné prerekvizity.

Korekvizity

Předmět nemá žádné korekvizity.