IA014 Advanced Functional Programming

Fakulta informatiky
jaro 2025
Rozsah
2/0/0. 2 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: k, z.
Vyučováno kontaktně
Vyučující
doc. Mgr. Jan Obdržálek, PhD. (přednášející)
Garance
doc. Mgr. Jan Obdržálek, PhD.
Katedra teorie programování – Fakulta informatiky
Dodavatelské pracoviště: Katedra teorie programování – Fakulta informatiky
Předpoklady
Previous experience with functional programming, at least to the extent covered by the course IB015 - Non-imperative programming.
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Mateřské obory/plány
předmět má 30 mateřských oborů, zobrazit
Cíle předmětu
Introduce the theoretical concepts behind the functional programming paradigm, i.e. lambda-calculus and various type systems. Present some of the modern advanced functional programming concepts (typeclasses, monads, monad transformers, GADTs, dependent types...).
Výstupy z učení
By the end of the course, students will:
understand the theoretical foundations of functional programming, e,g, lambda calculi and type theory;
understand and be able to efficiently use modern/advanced concepts of functional programming languages (e.g. typeclasses, monads, monad transformers...);
know the limits of the functional programming paradigm;
be able to evaluate and use FP-based concepts in modern mainstream (non-FP) languages.
Osnova
  • History of functional programming languages.
  • Untyped lambda calculus.
  • Simply typed lambda calculus.
  • Polymorphism add type inference (Hindley-Milner, System F)
  • Type classes.
  • Functors, Applicatives.
  • Monads.
  • Monad tranformers.
  • GADTs - Generalized Algebraic Data Types
  • Dependent types.
Literatura
  • BARENDREGT, Henk. The lambda calculus, its syntax and semantics. London: College Publications, 2012, xv, 621. ISBN 9781848900660. info
  • MICHAELSON, Greg. An introduction to functional programming through Lambda calculus. Wokingham: Addison-Wesley Publishing Company, 1989, 320 s. ISBN 0-201-17812-5. info
  • PIERCE, Benjamin C. Types and programming languages. Cambridge, Massachusetts: The MIT Press, 2002, xxi, 623. ISBN 9780262162098. info
  • O'SULLIVAN, Bryan, John GOERZEN a Don STEWART. Real World Haskell. First Edition. O'Reilly Media, Inc., 2009, 670 s. ISBN 978-0-596-51498-3. URL info
  • LIPOVAČA, Miran. Learn You a Haskell for Great Good!: A Beginner's Guide. First Edition. San Francisco, CA, USA: No Starch Press, 2011, 400 s. ISBN 978-1-59327-283-8. URL info
Záložky
https://is.muni.cz/ln/tag/FI:IA014!
Výukové metody
The course is organized as a series of lectures.
Metody hodnocení
Written midterm test covering the first half of the course, final oral exam (with a written part).
Vyučovací jazyk
Angličtina
Další komentáře
Předmět je vyučován každoročně.
Výuka probíhá každý týden.
Předmět je zařazen také v obdobích jaro 2003, jaro 2004, jaro 2005, jaro 2006, jaro 2007, jaro 2008, jaro 2009, jaro 2010, jaro 2011, jaro 2012, jaro 2013, podzim 2014, podzim 2015, jaro 2017, jaro 2018, jaro 2019, jaro 2020, jaro 2021, jaro 2022, jaro 2023, jaro 2024.