Skip to main content
Skip header

Practical Functional Programming

Summary

Functional style of programming is well established, but for decades it was mostly used in universities and frequently it was treated like a nice concept without real practical application. Pure functional languages like Haskell, were rarely used for real life applications. Right now, functional style of programing is going through a sort of renaissance. It is embedded into many of the most popular multiparadigm languages like Python, Javascript or C#. Moreover, new pure functional languages like Scala, F# or Clojure emerged and become widely used. Even more, with the usage of JVM (Scala) or .NET CLR (F#) it is even easier to have a project accommodating various styles of programming.

In this subject, we will focus on practical aspects of applications development using pure functional programming languages Haskell and Elm. As a key project we will create a web-based information system, where the front end will be implemented in Elm and the back end will be in Haskell. They will be connected through REST Api. Moreover, we will address other issues as the usage of database or parsing various data formats. On this project, it will be demonstrated, that these functional languages are well suited for the development of real-life applications. Moreover, it will be pointed out, that their usage has some key advantages. Beside the programming itself, we will learn how to use some of the key infrastructure and tools supporting the development of real-life applications.

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 .


Language of instruction čeština, angličtina
Code 460-4144
Abbreviation PFP
Course title Practical Functional Programming
Coordinating department Department of Computer Science
Course coordinator Ing. Marek Běhálek, Ph.D.