Skip main navigation

The End of the Affair

Thanks for taking the Functional Programming in Haskell course. We hope you will continue your functional programming journey! May your functions always typecheck! May your stack never overflow! May your …

Functional Programming in Other Languages

All mainstream languages (like Python, Java and C++) are incorporating functional constructs. So even if you aren’t going to be using Haskell regularly, you can still develop your code in …

Summary

The lambda calculus is a formal model for computation using only lambda functions. Haskell, like other functional languages, is based on the lambda calculus. The reduction rules from the lambda …

Key Constructs and Functions in Haskell

In a Functional Language, There are Only Functions Although it might seems that a language like Haskell has a lot of different objects and constructs, we can express all of …

Introduction to the Lambda calculus

Introduction to the Lambda Calculus The lambda calculus was developed in the 1930s by Alonzo Church (1903–1995), one of the leading developers of mathematical logic. The lambda calculus was an …

Summary

A monad is a mechanism for combining computations. It is a typeclass providing the bind and return operations. To be an actual monadic type, the implementations ofbind and return must …

Example: the Maybe monad

We’ve already seen the Maybe type. Let’s look at the Maybe monad, which makes using the Maybe type a lot easier. The Maybe type constructor You already know the definition …

Introduction to monad theory

What is a Monad? A monad is an algebraic structure in category theory, and in Haskell it is used to describe computations as sequences of steps, and to handle side …

We Already Know About Monads

Monads, as a concept, cause trouble to some novice Haskell programmers. How and why do we need to understand this abstract mathematical formalism? Over the next few steps, we are …

Summary

Type classes provide a set of function type signatures. Haskell has special keywords to create type classes. To create an instance, we create functions for a given type that match …

Type Classes in more Detail

Type class and instance declarations Defining type classes A type class is a set of types for which some operations are defined. Haskell has some standard type classes that are …

Course Feedback

To mark the end of the fifth week, Jeremy will record another feedback video to review the second half of the course and address some of your comments and questions. …

Types with Class

Type classes are a way to overload functions or operators by putting constraints on polymorphism. For example, we have seen that: (+) :: a -> a -> a is not …

Haskell in the Wild

Functional programming (particularly Haskell) is used by a growing number of companies today, including some large multinationals. Companies that use Haskell There are lists of companies that use Haskell on …

Haskell at Facebook

Jeremy recently visited Facebook’s London office, where he met Katie Ots. She is a software engineer at Facebook, developing Haskell code for real-world applications. Katie explained how and why Haskell …