Welcome to all those learning Haskell
Whether you're just starting out learning Haskell, or struggling to figure out how to put what you've learned into practice writing real-world programs, or even a functional programming expert trying to delve further into the niche corners of the ecosystem, we all know the pain of frantically Googling heaps of esoteric concepts that we've never heard of, desperately trying to piece together an understanding of Haskell through tiny scraps of information scattered across the internet.
Digging through inscrutable research papers, overly-pedantic StackOverflow questions, and far-flung blog posts, scrambling for that one spark, that one "a-ha" moment where it all clicks into place. Sound familiar?
None of that here. Here, on this blog, is where you'll find no-nonsense explanations of Haskell concepts, written in plain English, connected to the real-world applications you'll use them for. No crazy mathematics, no formalism-laced brainmelters that only a multiple PhD could understand. Haskell, explained for the working developer.
Sound good? Great, let's dive in. Below are some of my best articles to start.
Applying Haskell to real-world problems
- A dead-simple web stack in Haskell
- Which type-safe database library should you use?
- Things software engineers trip up on when learning Haskell
- Exercises for understanding lenses
Fundamental concepts
- Deriving the State monad from first principles
- Deriving the Reader monad from first principles
- Deriving the Writer monad from first principles
- Monad Transformers 101
- Why Monad Transformers Matter
- How to do basic error handling and logging in Haskell
Beginner-level Haskell
- You are already smart enough to write Haskell
- The road to proficient Haskell
High-level design philosophy
- How does Haskell make your life easier?
- Permissive, then restrictive: learning how to design Haskell programs
- Try the advanced stuff
- A list of Haskell articles on good design, good testing
Recent posts
- Why Monad Transformers Matter July 01, 2023
- Monad Transformers 101 June 10, 2023
- Drawing Trees Functionally: Reingold and Tilford, 1981 April 22, 2023
- Writing Servant combinators for fun and profit February 28, 2023
- Why continuation-passing style works, and the Cont monad May 02, 2022
Please see the contact page for any business inquiries.