Základy programování v jazycích typu ML (typy, funkce, moduly, striktní a líné vyhodnocování, imperativní i funkcionální konstrukce, výjimky), rozšíření jazyka F# (přetěžování operátorů, sekvence, computation expressions, asynchronní programování) a koncepty
funkcionálního programování (pattern matching, funkce jako hodnoty, abstraktní a nekonečné datové struktury, monády, continuation passing style).
Poslední úprava: T_KAM (18.04.2010)
Basic programming in ML-like languages (types, functions, modules, strict and functional evaluation, imperative and functional constructs, exceptions), F# language extensions (operator overloading, sequences, computation expressions, asynchronous workflows) and
functional programming concepts (pattern matching, function as values, abstract and infinite data structures, monads, continuation passing style).
Cíl předmětu -
Poslední úprava: T_KAM (18.04.2010)
Cílem semináře je seznámit studenty s klíčovými koncepty funkcionálního programování a jejich použití v jazyce F# či ostatních jazycích rodiny ML
Poslední úprava: T_KAM (18.04.2010)
The goal of the seminar is to introduce the students to the key concepts of functional programming and their usage in programming language F# or in other ML-like languages.
Literatura -
Poslední úprava: T_KAM (06.05.2010)
Don Syme, Adam Granicz, Antonio Cisternino, Expert F#, ISBN 1590598504, APress 2007.
Jon Harrop, F# for Scientists, ISBN 0470242116, Wiley-Interscience 2008.
Chris Smith, Programming F#, ISBN 0596153643, O'Reilly Media 2009.
Don Syme, Adam Granicz, Antonio Cisternino, Programming F#, ISBN 1430224312, APress 2010.
Poslední úprava: T_KAM (18.04.2010)
Don Syme, Adam Granicz, Antonio Cisternino, Expert F#, ISBN 1590598504, APress 2007.
Jon Harrop, F# for Scientists, ISBN 0470242116, Wiley-Interscience 2008.
Chris Smith, Programming F#, ISBN 0596153643, O'Reilly Media 2009.
Don Syme, Adam Granicz, Antonio Cisternino, Programming F#, ISBN 1430224312, APress 2010.
Sylabus -
Poslední úprava: T_KAM (18.04.2010)
1) Základní datové typy, funkce, výrazy a pattern matching.
2) Funkcionální datové struktury - seznamy, stromy, sekvence a další.
3) Imperativní programování - odkazy a pole.
4) Vlastní datové struktury.
5) Výjimky.
6) Objekty.
7) Moduly a signatury.
8) Přetěžování operátorů.
9) Continuation passing style.
10) Sequence expressions a monády.
11) Líné vyhodnocování a nekonečné datové struktury.
12) Asynchronní programování.
13) Paralelní programování v STM monádě.
Poslední úprava: T_KAM (18.04.2010)
1) Basic data types, functions, expressions and pattern matching.
2) Functional data structures - lists, trees, sequences and others.
3) Imperative programming - references and arrays.