Get a grip on Functional Programming using Haskell

Softwareentwicklung mit Open Source
05.09.2023Workshop abgesagt!

9:10 – 17:00 Uhr
Fachhochschule OST Campus Rapperswil
Max. Teilnehmer: 28

Einleitung

Functional Programming (FP) has become a trend during the last couple of years. Nevertheless, FP is not something new, but has more than 60 years of history and well-founded systematic development behind it. FP offers practical and elegant solutions for a number of challenges faced by software engineers today, especially when dealing with scalability, efficiency, concurrency, and correctness. Functional programming is therefore a skill that is increasingly relevant.

One consequence of this is the increasing introduction of functional notation in mainstream programming languages. But functional programming is not merely the use of functional notation, but an approach to programming where simplicity, clarity and elegance are the key goals.

For many programmers, this requires a change in mind-set, mental discipline, and practice in order to appreciate and take advantage of the benefits offered by functional programming to their craft.

Programm

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 concepts will be covered:

  • Purity
  • Functions as first-class citizens
  • Types & type inference
  • Recursion
  • Higher-order functions
  • Algebraic data types & Pattern matching

More advanced topics such as property-based testing, type classes, lazy evaluation, performing IO and using Monads can be covered in case there is sufficient time and interest.

Kursziel

All participants are able to:

  • Explain the motivation and mindset behind functional programming and the concepts listed above.
  • Have a firmer grasp of programming in general, and have more fun doing it.
  • Write simple functional programs using this mindset in Haskell.
  • Propose elegant solutions to their own programming problems using this mindset.
  • Be able to independently cover more advanced concepts in this area of programming.

Adressaten

Programmers who would like to expand their horizons and have a well-founded understanding of what is means to program in the functional style.

Voraussetzungen

Familiarity with programming in a general-purpose programming language (e.g., Python, Java, C#) is helpful, but not required.

The workshop will be held in English. Communication in German is not a problem.

Infrastruktur

You will need to bring your own laptop computer with a functioning wireless network interface running a current version of Linux, MacOSX or Windows.

In order that we can make full use of the workshop day, please do the following beforehand:
– Use the GHCup installer (https://www.haskell.org/ghcup/ ) to install all tools marked as “recommended”.
– Download and install VS Code (https://code.visualstudio.com/ ) and the Haskell extension (https://marketplace.visualstudio.com/items?itemName=haskell.haskell ).

The workshop is structured around the book “Programming in Haskell” (2.ed) by Graham Hutton. Although not strictly necessary, in case you want to get the most out of this workshop, I recommend that you acquire this book and read as far as possible before the workshop day. The book is available in print as well as an eBook. The first two chapters can be viewed freely online (http://www.book2look.com/vbook.aspx?id=9781316626221 ).

Referenten

Farhad Mehta

OST


Farhad Mehta teaches Software Engineering at the OST Eastern Switzerland University of Applies Sciences. 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 more fun to write.