Are you interested in a highly intensive, highly practical two day Haskell course? Join this workshop to learn Haskell's excellent capabilities for abstraction and how you can use Haskell to quickly develop correct programs that are close to a given specification.

At the centre of the Haskell language is its type system: types that do not get in the way because they can be inferred; types that can be polymorphic and overloaded in various ways; types that explicitly tag functions with side-effects. Learn how these features make Haskell unique, even among functional languages, and learn all about functional language concepts, by understanding Haskell's uncompromising approach.

While we will touch on the theoretical foundations of the language, the focus of this Haskell course is most definitely practice: You will learn how to best use the Haskell toolchain, about important best practices in program development, and you will gain a true understanding on how to best harness and utilise Haskell's power!

Upon completion of this Haskell course, you will be able to design robust functional programs in a principled and systematic way - the kind of things that are difficult to pick up from reading a book.

About the Author

Andres Löh is a long-time functional programming enthusiast. He has started using Haskell in 1997 while being an undergraduate studying mathematics.
He obtained his PhD on datatype-generic programming using Haskell from Utrecht University in 2004. Since then, he has continued to use Haskell in research and practice, including teaching various courses both to students and participants from industry.
His main interests, next to datatype-generic programming, are embedded domain-specific languages, unleashing the full power of Haskell's type system, parallelism and applying functional languages to real-life problems. Since 2010, Andres is an independent Haskell consultant and partner at Well-Typed LLP.

Thanks to our partners

Quick Tour of Haskell

An overview of the most important language concepts of Haskell

Type-Directed Program Development

Defining functions systematically

Pattern matching

An introduction to lists, tuples, and Maybe

Polymorphism and overloading

Polymorphic functions and code reuse

The power of parametricity

Understanding type classes

IO

Why effects should be explicit in the types

Composing IO actions

Structuring interactive programs

Testing

An introduction to QuickCheck and SmallCheck

Patterns for effects

Abstracting from common programming patterns

The Maybe, list and state monads

The monad interface

Audience

If you are a developer who wants to learn about functional programming, and Haskell specifically, but you have little or no experience with any functional language - then this course is for you! This course would also suit those wishing a refresher on Functional Programming and Haskell.

Prerequisites

Some familiarity with programming in general is helpful, but no experience in functional programming
languages or Haskell is expected

Bring your own hardware

You are requested to bring your own laptop for this course, with the Haskell Platform installed - to learn how to develop within your own environment.

If you are unable to bring a laptop for this course, please contact our community team on +44 207 183 9040 or email us.