Imagine programming with only pure functions.

Imagine programs that are shorter, more elegant, easier to reason about, and better to execute in parallel on modern manycore processors and massive datacenters. You’ve just imagined functional programming. In this introduction to functional programming in Haskell you will learn powerful functional programming techniques such as immutable data structures, higher order functions, and lambdas. Learning functional programming will make you a better programmer whatever the language you use. These are just some of the reasons why functional programming is growing in popularity. Smashing Magazine describes functional as ‘the hipster of programming paradigms’. All major tech companies are adopting functional programming techniques, whether it’s Scala at Twitter, MapReduce at Google, or Haskell at Facebook.

In fact, early work on the Haskell functional programming language took place here at the University of Glasgow, and we’ve been teaching it to our undergraduate Computing Science students for many years. This course is aimed at people who have some prior programming experience but want to discover functional programming for themselves. We introduce the Haskell language with interactive tutorials and practical programming exercises. We’ll take you from the basics through to advanced features of functional programming. And don’t worry, we’ll deconstruct all the alarming buzzwords and phrases from lambda calculus to monads. Also, in a series of exclusive interviews with key Haskell language designers, we will explore the history, present status and future prospects of functional programming.

Functional languages are becoming more and more popular. All mainstream languages are incorporating functional constructs. So now is the time to begin functional programming in Haskell. We hope you’ll join us on this course.