Skip to main content
Skip header

Practical Functional Programming

Type of study Follow-up Master
Language of instruction English
Code 460-4144/02
Abbreviation PFP
Course title Practical Functional Programming
Credits 4
Coordinating department Department of Computer Science
Course coordinator Ing. Marek Běhálek, Ph.D.

Subject syllabus

Syllabus of presentations

Introduction to language Haskell, introduction to functional style of programming.
1. Introduction - Haskell platform, GHCI interpreter, simple recursion, simple functions.
2. Functions - solving more complex problems, basic libraries, introduction to type classes.
3. Lists and user defined data types – basic usage, introduction to list generators, functional way of solving problems
.
Tools for functional programming
4. Tools for project and library management (Stack, Cabal) and development support tools (eg debugger).
5. Testing

Advanced aspects of Haskell programming
6. Programming with actions - theoretical aspects, monads, examples (ST monad).
7. Input and output, handling errors.

Selected Haskell libraries
8. Processing of selected data formats (JSON, XML), input parsing.
9. Parallel programming, networking, web REST api.
10. Using the database.
11. Haskell GUI

Web GUI in ELM language.
12. Elm - basic components.
13. Elm - selected technologies, application of styles.
14. Elm - connection to the backend in language Haskell.

The content of the exercises will be corresponding to the presentations. We assume, that all exercises will be in computer classrooms.

E-learning

Basic materials are available on the educator's website: http://behalek.cs.vsb.cz/wiki/index.php/Practical_Functional_Programming
Consultation through MS Teams.

Literature

[1] Bryan O'Sullivan, John Goerzen, and Don Stewart. 2008. Real World Haskell (1st. ed.). O'Reilly Media, Inc. Available online: http://book.realworldhaskell.org/

[2] Lipovaca M.:Learn You a Haskell for Great Good!: A Beginner's Guide (1st ed.). No Starch Press, San Francisco, CA, USA, 2011. Available online: http://learnyouahaskell.com/

Advised literature

[3] Thompson S.: The Haskell: The Craft of Functional Programming (3nd ed.). Addison-Wesley Professional, October 2, 2011, ISBN-10: 0201882957 .