Introduction to Functional programming in Haskell
Functional Programming (FP) has become somewhat of a trend during the last couple of years. Nevertheless, FP is not something new, but has more than 50 years of history behind it. It is claimed that FP offers practical and elegant solutions for a number of challenges faced by software engineers today, especially when dealing with concurrency or ensuring correctness.
Programming in the functional style is a skill that is increasingly relevent: many mainstream programming languages such as Java and C# introduce language constructs from the FP world with each new release. The most widely used functional languages today are developed collaboratively as open source projects and there exist a large number of open source projects that are written in functional programming languages.
The workshop will start with of a short introduction to the mind-set behind functional programming. This will be followed by a number of hands-on practical sessions, in the pure functional language Haskell. The following basic FP concepts will be covered:
- Referential transparency
- Functions as first-class citizens
- Higher-order functions
- Algebraic data types
- Pattern matching
- Types & type inference
All participants are able to:
- Explain the basic FP concepts listed above.
- Write simple functional programs in Haskell.
- Apply the concepts covered in other programming languages.
- Decide if using functional style would benefit a concrete project.
Programmers, who want to expand their horizons and are interested in having a first glimpse into the world of functional programming.
- Ability to program in a general-purpose programming language (e.g. Java, C#).
- No (or little) prior experience with functional programming.
- The workshop will be held in English.
You will need to bring your own laptop computer running a current version of Linux, MacOSX or Windows.
In order that we can make full use of the workshop day, I would like to ask you to install the Haskell compiler on your personal laptop from https://www.haskell.org/downloads . For the purposes of the workshop, the minimal installer will do just fine: We will be using the „GHCi“ REPL console and your favourite text editor.
You could go through the first few steps listed on https://wiki.haskell.org/Haskell_in_5_steps in order to make sure that you have a working Haskell installation.
The material for the workshop will be made available online, so please make sure that you have a functioning wireless network adaptor on your laptop.
Prof. Farhad Mehta teaches Software Engineering at the University of Applied Science Rapperswil (HSR). He belongs to a generation that made its first programming experiences in a functional language, and secretly bemoans the passing of those times. He believes, from experience, that using the functional style and related technologies has the potential to make software less complex and error-prone.