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).
Last update: T_KAM (18.04.2010)
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).
Aim of the course -
Last update: 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.
Last update: 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
Literature -
Last update: 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.
Last update: 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.
Syllabus -
Last update: 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.
4) User defined data structures.
5) Exceptions.
6) Objects.
7) Modules and signatures.
8) Operator overloading.
9) Continuation passing style.
10) Sequence expressions and monads.
11) Lazy evaluation and infinite data structures.
12) Asynchronous programming.
13) Parallel programming using STM monad.
Last update: 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.