We spent a few months last year building the groundwork for Haskellings in this YouTube series. Now after some more hard work, we’re happy to announce that Haskellings is now available in the beta stage. This program is meant to be an interactive tutorial for learning the Haskell language. If you’ve never written a line of Haskell in your life, this program is designed to help you take those first steps! You can take a look at the Github repository to learn all the details of using it, but here’s a quick overview.


Haskellings gives you the chance to write…

We’re back again with some more site improvements, this time to our Advanced Content. All of these series now have improved syntax highlighting and code blocks for better readability. In addition, we’ve revised three of them with updated companion code! Here’s a summary.

Real World Haskell Series

Once you’ve mastered the foundations of the language, this series should be your first stop! It will walk you through several different libraries demonstrating how you can perform some real-world tasks with Haskell, like connecting to a database and running a web server. You can follow along with all the code here on GitHub.

Parsing Series

As a functional…

Where has Monday Morning Haskell been? Well, to ring in 2021, we’ve been making some big improvements to the permanent content on the site. So far we’ve focused on the Beginners section of the site. All the series here are updated with improved code blocks and syntax highlighting. In addition, we’ve fully revised most of them and added companion Github repositories so you can follow along!


Our Liftoff Series is our first stop for Haskell beginners. If you’ve never written a line of Haskell in your life but want to learn, this is the place to start! …

We’re taking a quick breather this week from new content for an announcement. Our recently concluded Rust Web series now has a permanent spot on the advanced page of our website. You can take a look at the series page here! Here’s a quick summary of the series:

  1. Part 1: Postgres — In the first part, we learn about a basic library to enable integration with a Postgresql Database.
  2. Part 2: Diesel — Next up, we get a little more formal with our database mechanics. We use the Diesel library to provide a schema for our database application.
  3. Part 3…

For a couple months now, we’ve focused on some specific libraries you can use in Rust for web development. But we shouldn’t lose sight of some other core language skills and mechanics. Whenever you write code, you should be able to show first that it works, and second that it works efficiently. If you’re going to build a larger Rust app, you should also know a bit about unit testing and benchmarking. This week, we’ll take a couple simple sorting algorithms as our examples to learn these skills.

As always, you can take a look at the code for this…

A couple weeks ago we explored how to add authentication to a Rocket Rust server. This involved writing a from_request function that was very messy. You can see the original version of that function as an appendix at the bottom. But this week, we're going to try to improve that function! We'll explore functions like map and and_then in Rust. These can help us write cleaner code using similar ideas to functors and monads in Haskell.

For more details on this code, take a look at our Github Repo! For this article, you should look at rocket_auth_monads.rs. …

In the last few articles, we’ve been exploring the Rocket library for Rust web servers. Last time out, we tried a couple ways to add authentication to our web server. In this last Rocket-specific post, we’ll explore some ideas around frontend templating. This will make it easy for you to serve HTML content to your users!

To explore the code for this article, head over to the “rocket_template” file on our Github repo! If you’re still new to Rust, you might want to start with some simpler material. Take a look at our Rust Beginners Series as well!

Templating Basics

First, let’s…

Last week we enhanced our Rocket web server. We combined our server with our Diesel schema to enable a series of basic CRUD endpoints. This week, we’ll continue this integration, but bring in some more cool Rocket features. We’ll explore two different methods of authentication. First, we’ll create a “Request Guard” to allow a form of Basic Authentication. Then we’ll also explore Rocket’s amazingly simple Cookies integration.

As always, you can explore the code for this series by heading to our Github repository. For this article specifically, you’ll want to take a look at the rocket_auth.rs file

If you’re just…

We’ve now explored a couple different libraries for some production tasks in Rust. A couple weeks ago, we used Diesel to create an ORM for some database types. And then last week, we used Rocketto make a basic web server to respond to basic requests. This week, we’ll put these two ideas together! We’ll use some more advanced functionality from Rocket to make some CRUD endpoints for our database type. Take a look at the code on Github here!

If you’ve never written any Rust, you should start with the basics though! Take a look at our Rust Beginners Series!

Database State and Instances

Welcome back to our series on building simple apps in Rust. Last week, we explored the Diesel library which gave us an ORM for database interaction. For the next few weeks, we’ll be trying out the Rocket library, which makes it quick and easy to build a web server in Rust! This is comparable to the Servant library in Haskell, which we’ve explored before.

This week, we’ll be working on the basic building blocks of using this library. The reference code for this article is available here on Github!

Rust combines some of the neat functional ideas of Haskell with…

James Bowen

Author of Monday Morning Haskell (http://mmhaskell.com)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store