Haskell Programming from First Principles

Haskell Programming from First Principles by Chris Allen and Julie Moronuki, better known as The Haskell Book, is a massive book. My copy runs around 1,200 pages, and I worked through all of it, exercises and all, minus a few at the very end. This was actually my second attempt. The first time I fell off somewhere around page 300, since the pace was slow and nothing in the book had me building things, so I lost momentum. This time I paired it with Learn Haskell by Example for projects and Learn You a Haskell as light reading on the side, and that combination is what got me through, with The Haskell Book building up the theory and Learn Haskell by Example giving me a wide variety of places to apply it. ...

November 2, 2026 · 7 min · 1354 words · Lewis Cawthorne

Learn Haskell by Building a Blog Generator

Learn Haskell by Building a Blog Generator is a free online book that teaches Haskell through a single project, a small static blog generator. It’s short, around 150 pages if you export it to PDF, and that’s a big part of its appeal. I read it during a week when my laptop was in the shop, as a bounded, finishable side project to fill the gap while my main Haskell books (The Haskell Book and Haskell by Example) were on hold. ...

October 30, 2026 · 4 min · 641 words · Lewis Cawthorne

Learn You a Haskell for Great Good!

Learn You a Haskell (LYAH) is the friendly, illustrated, free online Haskell introduction that a lot of people start with. I read it as the third track in my Haskell study, alongside The Haskell Book for the deep theory and laws and Haskell by Example for project-driven practice, and I own it in print, mostly to support the author. LYAH ended up being my “medium” book. It wasn’t demanding enough to need my protected morning focus time, but it wasn’t throwaway reading either. It moves fast and covers an enormous amount of ground in relatively few pages, and it rarely gives you exercises, so it was easy to pick up between chapters of my heavier books, but I also retained less from it than from the books where I was typing and testing code. More than once I described it as a book where you’re lucky to keep anything, but you’ll recognize the topic when it comes up again somewhere else, and that turned out to be worth a lot, since plenty of concepts were already familiar by the time The Haskell Book covered them properly. ...

October 26, 2026 · 3 min · 552 words · Lewis Cawthorne

Grokking Simplicity

Grokking Simplicity by Eric Normand teaches the difference between actions, calculations, and data as a way to reason about mutation and side effects, and it works better as a vocabulary book than a technique book. If you’ve already internalized what map, filter, and reduce are for, and I mean really internalized it and not just being able to write the syntax, most of the core material is going to read as confirmation of things you already believe instead of new information. The higher-order function chapters and the copy-on-write chapters fall right into that bucket. They’re clearly and patiently explained, and useful for someone who’s never had the difference between mutating and copying spelled out, but they’re slow going if you’ve been burned by shared mutable state enough times to already distrust it on instinct. ...

October 16, 2026 · 3 min · 439 words · Lewis Cawthorne

Advanced Functional Programming with Elixir

Advanced Functional Programming with Elixir turned out to be a pretty good, easy introduction to functional programming concepts, and it uses good domain examples instead of math. It walks through Elixir’s protocol system with a DDD slant, using a theme park domain with rides, patrons, and Fast Passes instead of the numbers-only examples you get in most Haskell books. The code is built around a companion library called FunPark, a teaching-scale version of Koski’s real production package, Funx. The theme park was a good choice, and it paid off most in the Eq/FastPass chapter, where a real business rule (two Fast Passes with the same datetime conflict, but should still be equal by id) motivated contramap far better than an abstract definition ever could have. ...

October 9, 2026 · 5 min · 891 words · Lewis Cawthorne

Learn Functional Programming with Elixir

A perfectly good introduction to the Elixir language, although it didn’t have anything specific to learning functional programming in it beyond getting used to doing things the Elixir way. I guess it had more recursion than most introductory programming books… It feels like a terrible introduction in comparison to Dave Thomas’ Programming Elixir though, since it stops totally short of introducing the Actor model and OTP, which are unique strengths of Elixir, but that’s obviously a longer book to read. ...

October 5, 2026 · 1 min · 83 words · Lewis Cawthorne

From Objects to Functions

This was one of the better books I’ve read recently for actually changing how I think about programming. It combines domain-driven design, test-first development, and functional programming into one coherent story, which is pretty rare, since most books only tackle one of those at a time. Unlike some of my other recent reads, the Kotlin itself was well-structured and idiomatic throughout, not just functional-flavored Java. ...

September 27, 2026 · 4 min · 719 words · Lewis Cawthorne

A Blog Reborn

So, I haven’t been blogging for about ten years. To tell the truth, I spent all day programming, so when I got off work, I spent my time reading history or philosophy or anything else not computer related. I can see from my previous posts that I was experimenting with video and had started reading Agile Web Development with Rails. Well, I’m still a full stack web developer, so I could do worse than looking back at the web framework that really started it all. So I will read Agile Web Development with Rails 8 and get a taste of convention before configuration. That doesn’t really fit with the new title of the blog, but it’s still something I want to do, so I will get it done. I was interested in functional programming and different approaches to web development 10 years ago, and have never fully explored either, so I’m picking up where I left off with a slightly updated approach. ...

August 4, 2026 · 13 min · 2643 words · Lewis Cawthorne