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 …
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 …
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 …
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 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 …
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 …
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 …
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 …
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 …
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 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 …
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. …
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 …
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 …
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 …