Getting Started with Haskell

At Monday Morning Haskell we have a variety of different series and tutorials no matter what your skill level! You can see the full list a bit further down. Below I've highlighted a few specific questions you might have and which series you should read to answer that question!

The Series

  • Liftoff - Learn the basics, from syntax to code modules!
  • Haskell Data - Create your own data types in Haskell!
  • Monads and Functional Structures - Learn about one of Haskell's trickiest and most important topics!
  • Real World Haskell - See how you can connect to a database and build a web server in Haskell!
  • Data Structures - Learn how Haskell does data structures, so you can solve complex problems!
  • Machine Learning in Haskell - Link Haskell with TensorFlow and do Machine Learning!
  • Open AI Gym - Train AI models to play simple games!
  • Testing - Learn the basics of testing and validating your Haskell code.
  • Parsing - Get a survey on different parsing libraries in Haskell
  • API Integrations - See how to integrate with different web APIs (e.g. Twilio, Mailgun)
  • Rust - Learn the basics of Rust, another functional language!
  • Rust Web - Use Rust to write a basic web server.
  • The Haskell Brain - Here, we'll talk about some of the psychological aspects of learning Haskell
  • GHC - Learn how to contribute to GHC, Haskell's most widely used compiler.
  • Elm - Learn about Elm, a frontend language very similar to Haskell
  • Purescript - Write some Purescript, another functional frontend language.

How do I start writing Haskell?

You should start with our Liftoff Series! This will start you off with the very basics of learning Haskell, including how to get the language set up on your machine! You'll start with the basic syntax constructs in the Haskell interpreter, and by the end you'll be writing your own code modules!

How do Monads work?

Our Functional Structures Series will walk you through the process of learning monads. You'll start with simpler ideas like Functors, and by the end you'll be combining all kinds of different monads!

What Else Should a Beginner Know?

Our Data Types Series covers some interesting ideas about how you create new data types in Haskell. It covers the progression from data types all the way up to type families!

Unit testing is also an essential skill for any programmer in any language. In our Testing Series you'll learn about some of Haskell's basic unit testing libraries!

Our Haskell Brain Series covers some of the psychological aspects of Haskell, like why people think it's a hard language. You'll learn some useful techniques for writing Haskell methodically and learning faster.

What's A Good Haskell Project?

For a simpler project, you can tackle our Parsing Series. Haskell is a great language for writing parsers, and you'll learn 3 different libraries that can help you out!

If you're ready for something more complicated, our Real World Haskell Series will teach you about concepts like running databases and web servers in Haskell. You'll even learn how to use Docker containers to run your Haskell code!

You can also take a look at our API Integrations Series. This builds on some of the web skills and teaches you a process to mock out any web API and call it from your Haskell code.

Can Haskell Be Used for Machine Learning?

Yes! We have a basic Machine Learning Series to teach you how to use Tensor Flow with Haskell!

For a more project-based approach, you can read our Open AI Gym Series. We explore how we can build simple games in Haskell and then apply machine learning approaches to the game agents.

Does this site cover any other functional languages?

We do indeed! First up, we have a couple different series on Rust. You can start out with our Rust Beginners Series. And when you're done with that and ready for something more practical, you can move on to our Rust Web Series.

We also cover a couple different functional frontend languages. You can take a look at our series on Elm or Purescript.