What?
Functional Programming (FP) is a powerful programming paradigm based on a very simple notion: the central unit of computation is the function, whose outputs are uniquely determined by its inputs.
Why?
What makes Functional Programming unique is that its ideas have steadily matured over many decades. Its compact notation, powerful abstraction mechanisms and ease of reasoning have systematically convinced programming language researchers and designers. As a consequence, its influences can be seen in most present-day programming languages and libraries. Indeed, it is hard to find a language that does not support higher-order programming and anonymous functions.
How?
This two-day course provides a basic introduction to the core concepts of Functional Programming by means of the Haskell programming language. Because Haskell is a purely functional programming language, it is one of the best settings to study functional concepts in their most essential form, before identifying and applying them in other language settings.
This course has a particular focus on embedded domain-specific languages (DSLs). DSLs are a powerful problem-solving technique that highlights many aspects of the functional approach to programming.
Target Audience
This course is aimed at industry participants who want to better understand the basic concepts of Functional Programming.
We assume a working knowledge of programming in some (not necessarily functional) programming language (Java, C#, Python, ...).
Contents
Day 1:
- Haskell basics
- Practice Session
- Algebraic datatypes and pattern matching
- Practice Session
- Recursion
- Practice Session
Day 2:
- Higher-order functions and recursion schemes
- Practice Session
- Domain-specific languages, part 1
- Practice Session
- Domain-specific languages, part 2
- Practice Session