SubjectsSubjects(version: 916)
Course, academic year 2022/2023
   Login via CAS
Advanced Functional Programming - NPRG040
Title: Pokročilé techniky funkcionálního programování
Guaranteed by: Computer Science Institute of Charles University (32-IUUK)
Faculty: Faculty of Mathematics and Physics
Actual: from 2013
Semester: summer
E-Credits: 3
Hours per week, examination: summer s.:0/2, C [HT]
Capacity: unlimited
Min. number of students: unlimited
Virtual mobility / capacity: no
State of the course: cancelled
Language: Czech
Teaching methods: full-time
Guarantor: prof. Mgr. Zdeněk Dvořák, Ph.D.
Class: Informatika Mgr. - volitelný
Classification: Informatics > Programming
Annotation -
Last update: T_KAM (25.04.2008)
Functional programming techniques (combinators, monads, continuation passing style, ...). Functional data structures. Compilation, optimalization and debugging of programs in functional programming languages, especially in Haskell. The knowledge of Haskell at the level of subject NPRG005 is required.
Aim of the course -
Last update: T_KAM (25.04.2008)

The goal of the seminar is to familiarize the students with functional programming techniques and thereby improve their programming skills, especially the ability of abstraction and modularity.

Literature -
Last update: T_KAM (25.04.2008)

Jeremy Gibbons and Oege de Moor (eds.): The Fun of Programming, Palgrave, 2002, 288 pages. ISBN 0333992857.

Graham Hutton: Programming in Haskell, Paperback: 200 pages, Cambridge University Press (January 31, 2007), English, ISBN 0521692695.

Richard Bird: Introduction to Functional Programming using Haskell, 2nd edition, Prentice Hall Press, 1998, 460 pp., ISBN 0134843460.

Syllabus -
Last update: T_KAM (25.04.2008)

1) Type system and its extensions, existential types, generic programming. Type classes, functional dependencies.

2) Monads and their extensions, monad transformers, arrows.

3) Combinators and parsing.

4) Continuation passing style.

5) Functional data structures.

6) Compilation and optimalization of functional programming languages.

7) Tools for profiling, debugging and testing.

8) Foreign function interface and communication with the operating system, exceptions and their handling.

9) Concurrency.

Charles University | Information system of Charles University |