Blog articles
Many areas of Haskell have been explored in the form of blog posts. This page collects the best of those articles from across the web.
Introductions to Haskell
- On Haskell, Intuition And Expressive Power
- Haskell: Raising the bar
- Learning the Haskell programming language
- On learning Haskell
- My evolution as a Haskell programmer
- Why its hard for imperative programmers to learn Haskell
- Flirting with Functional Programming
- Building a Firewall Against Complexity
- Haskell, bondage-and-discipline and separation-of-concerns programming
- Type systems as safety belts
- Haskell introduction for beginners
- Haskell Basics
- Haskell Preliminaries: Implementations and Tools
- Simple Functions in Haskell
First impressions
- Haskell First Impressions
- One month in Haskell
- Thoughts on one week in Haskell
- Comparing Gzip Code Reduction
- Haskell, first impressions (with sexy results)
Comparisons to other languages
Ruby
- Ruby vs Haskell: choose what works
- Haskell: open secret in Ruby land
- Monads in Ruby Part 1: Identity
- Monads In Ruby Part 1.5: Identity
Java
Javascript
C
Scala
Python
Scheme
Lisp
Functional programming
- Folds and functional programming
- A fold-like procedure in C
- What's wrong with for loops
- More on what's wrong with for loops
- Liberating Myself from the von Neumann Style
- Programming Productivity and Programming Languages
- Second order folds
- Haskell - A valuable language
- On Functional Programming
- foldr, foldl
Programming exercises
- Secret Santas in Haskell III: Lather, Rinse, Repeat 1
- Using Bayesian filtering instead of 'if' in Haskell
- Tying Knots Generically
- A quick and dirty theorem prover in Haskell
- FourFours in Haskell
Laziness
IO
- Haskell I/O for imperative programmers
- Simple Unix Tools in Elegant Haskell
- A filesystem tree printer
- Introductory console IO in Haskell
- Listing files in Haskell
Network
Concurrency
Performance
Parsing
- Config file parsing
- Playing fast and loose with Parsec for parsing in Haskell
- Combinator parsing
- Interesting parsers in Haskell
- Parser with Writer monad
- Parser combinators
Monads and arrows
- Haskell: bootstrapping into a clue about monads
- Monads for vector spaces, probability and quantum mechanics pt. I
- Monads work because they have a tight interface
- The theory of monads
- The monad behind every zipper
- More on Haskell, Side Effects and Code Reuse
- Monads
- A First Step Into Monads
- More Monads: Stateful Programming
Monad transformers
Comonads
Error handling and exceptions
Types
- Generalised Algebraic Data Types, Phantom Types, and Dependent Types
- Functions, Types, Function Types, and Type Inference
- Building Datatypes in Haskell (part 1)
- Rank-2 polymorphism is a strange thing
Type classes
Data structures
Web
- Haskell and Web Applications
- Ruby and Haskell: write your Rails backend code in Haskell instead of C
- Writing a Simple Search Engine in Haskell
Maths
- Learn Maths with Haskell
- Why isn't ListT list a monad?
- Reverse Engineering Machines with the Yoneda Lemma
- Variable substitution gives a...
- From Lb's Theorem to Spreadsheet Evaluation
- Games, Strategies and the Self-Composition of the List Monad.
- Practical Synthetic Differential Geometry
- More Low Cost Geometric Algebra
- Algebraic Topology in Haskell
- Infinitesimal Types
- Geometric Algebra for Free!
- Eleven Reasons to use Haskell as a Mathematician
- Laws of Form: An Opinion
- A-algebras and group cohomology
- Prototyping thought
- Computational Group Theory in Haskell
- Carry bits and group cohomology
- Why Haskell?
- Programs are Proofs: Models and Types in Lambda Calculus
- Polynomials as numbers
- Non-standard analysis, automatic differentiation, Haskell
- Haskell for Maths: commutative algebra, combinatorics, number theory, and group theory
- Two-dimensional spatial hashing with space-filling curves
- Arithemtic coding in Haskell
- Countable Ordinals in Haskell
- Polynomials as numbers