UIINFNP017 Funkcionální programování

Filozoficko-přírodovědecká fakulta v Opavě
léto 2025
Rozsah
0/2/0. 4 kr. Ukončení: z.
Vyučující
Ing. Jiří Blahuta, Ph.D. (cvičící)
Garance
Ing. Jiří Blahuta, Ph.D.
Ústav informatiky – Filozoficko-přírodovědecká fakulta v Opavě
Předpoklady
Základní znalosti programování a používání editačních nástrojů a prostředí MS.
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
Cíle předmětu
Kurz jazyka LISP, jeho historie a perspektiva. Dialekt jazyka LISP. Základní datové typy, symboly a funkce, principy funkcionálního programování. Tvorba rekurzivních funkcí, iterace, práce se seznamy. Lambda kalkul, funkce vyššího řádu. Lisp a umělá inteligence. Makra. Vytváření a použití struktur a objektové programování v jazyku LISP.
Výstupy z učení
Student bude po absolvování předmětu schopen vytvářet rekurzivní funkce a prácovat se seznamy, používat struktury, objektové programovat v jazyku LISP.
Osnova
  • 1. Úvod. Lisp a jeho vývoj, současnost a perspektiva. Dialekty, příbuzní a potomci Lispu. Common Lisp jako standard; srovnání s ostatními jazyky. Direktivní, procedurální, objektové, modulární, logické a funkcionální programování a jejich podpora v Lispu.
  • 2. První pohled na Lisp. Základní datové typy. Atomy a seznamy jejich vyhodnocování. Symboly a vazby; funkce; principy funkcionálního programování.
  • 3. Macintosh Common Lisp. Editor, posluchač, inspektor a debugger. Integrace vývojového prostředí a Lispu. Lisp jako dynamický jazyk.
  • 4. Druhý pohled na Lisp. Lambda kalkul v Lispu, anonymní funkce, funkce vyššího řádu, lexikální prostředí. Lisp a umělá inteligence.
  • 5. Třetí pohled na Lisp. Cyklus Read-eval-print. Základní datové typy podruhé. Makra. Optimalizace programu.
  • 6. Objektové programování v Lispu. Třídy a instance, vícenásobné dědění. Generické funkce, metody a multimetody. Kombinace metod. Metaobjektový protokol.
Literatura
  • Povinná:  TOURETZKY, David S. Common LISP: A Gentle Introduction to Symbolic Computation. Mineola, NY: Dover Publications, 2013. ISBN 978-0-486-49820-1. Doporučená:  MUELLER, John. Functional programming for dummies. Hoboken, New Jersey: John Wiley, [2
Výukové metody
Povinná účast na cvičeních min. 75 %. Povinná úspěšnost řešení úloh a spolupráce min. 50 %.
Metody hodnocení
Vypracování zadaných úkolů. Získání více než poloviny bodů za splnění zadaných úkolů. Povinná účast na cvičeních min. 75 %.
Informace učitele
http://is.slu.cz
Výuka probíha ve formě cvičení. Řešení úkolů zadaných vyučujícím.
Předmět je zařazen také v obdobích léto 2022, léto 2023, léto 2024.