SubjectsSubjects(version: 902)
Course, academic year 2022/2023
   Login via CAS
Programming language F# - NPRG049
Title: Programovací jazyk F#
Guaranteed by: Computer Science Institute of Charles University (32-IUUK)
Faculty: Faculty of Mathematics and Physics
Actual: from 2019
Semester: winter
E-Credits: 3
Hours per week, examination: winter s.:0/2 [hours/week]
Capacity: unlimited
Min. number of students: unlimited
Virtual mobility / capacity: no
State of the course: not taught
Language: Czech
Teaching methods: full-time
Guarantor: RNDr. Milan Straka, Ph.D.
Class: Informatika Mgr. - volitelný
Classification: Informatics > Programming
Annotation -
Last update: 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).
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.

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.

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.

Charles University | Information system of Charles University |