Dynamic Graphs
TL;DR: Alex Lang and I recently “finished” a library for dealing with dynamic graphs. The library focuses on the dynamic connectivity problem in particular, although it can do some other things as...
View ArticleBeeraffe
This weekend, I finished a silly little game in PureScript called Beeraffe. You can play it here and view the source code here. In this blogpost, I want to give some more background information on how...
View ArticleThe ZuriHac registration system
Introduction I am one of the organizers of ZuriHac, and last year, we hand-rolled our own registration system for the event in Haskell. This blogpost explains why we decided to go this route, and we...
View ArticlePartial application using flip
I have been writing Haskell for a reasonable time now – I believe I am coming up on ten years – so sadly the frequency with which I discover delightful things about the language has decreased. However,...
View ArticleMandelbrot & Lovejoy's Rain Fractals
Summary At some point during ICFP2019 in Berlin, I came across a completely unrelated old paper by S. Lovejoy and B. B. Mandelbrot called “Fractal properties of rain, and a fractal model”. While the...
View ArticleVisual Arrow Syntax
Not to be taken seriously. Haskell is great building at DSLs – which are perhaps the ultimate form of slacking off at work. Rather than actually doing the work your manager tells you to, you can build...
View ArticleLazy Sort: Counting Comparisons
Introduction {-# LANGUAGE BangPatterns #-} module Main where import Data.IORef (IORef) import qualified Data.Map as Map import qualified Data.IORef as IORef import Control.Monad (replicateM, forM_,...
View ArticleHaskell Puzzles
At ZuriHac 2023, I worked on some Haskell Puzzles together with Alex, Francesco, Jussi and Patrick. You are given some Haskell tokens and a goal term, and you need to rearrange the tokens into an...
View ArticleLazy Layout
Prelude This blogpost is written in reproducible Literate Haskell, so we need some imports first. Show me the exact imports… {-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE...
View ArticleTurnstyle
I am delighted and horrified to announce a new graphical programming language called Turnstyle. You can see an example below (click to run). img.turnstyle, .interpreter svg { max-width: 90%;...
View Article