Category Archives: combinatorics

The generic-random library, part 1: simple generic Arbitrary instances

In a previous post I pointed out that we know all the theory to make nice, principled, practical random generators for recursive algebraic data types; someone just needed to step up and do the work. Well, Li-yao Xia took up … Continue reading

Posted in combinatorics, haskell | Tagged , , , | 3 Comments

Eastman maximal comma-free codes in Haskell

This past January I watched a video of Don Knuth’s most recent annual Christmas lecture. Typically his Christmas lectures have been about trees, but breaking with tradition, he gave this lecture about comma-free codes, and presented an implementation of an … Continue reading

Posted in combinatorics, haskell | Tagged , , , | Leave a comment

Boltzmann sampling for generic Arbitrary instances

tl;dr: I know how to generate random instances of data types in a generic way, and even have some old code that already does all the hard work, but won’t have time to polish and package it until this summer. … Continue reading

Posted in combinatorics, haskell, math, species | Tagged , , , , , | 14 Comments

The Species of Bracelets

Summary: The species package now has support for bracelets, i.e. equivalence classes of lists up to rotation and reversal. I show some examples of their use and then explain the (very interesting!) mathematics behind their implementation. I recently released a … Continue reading

Posted in combinatorics, haskell, math, species | Tagged , , | 5 Comments

Crystal Ball Connection Patterns via Species and Generating Functions

A couple weeks ago, Denise posted Puzzle: Crystal Ball Connection Patterns on her blog, Let’s Play Math. I had fun playing with it and thought I would demonstrate how to apply some high-powered combinatorial techniques to it (probably not what … Continue reading

Posted in combinatorics, haskell, math, species | Tagged , , , , , | 1 Comment

Readers wanted!

tl;dr: Read a draft of my thesis and send me your feedback by September 9! Over the past year I’ve had several people say things along the lines of, “let me know if you want me to read through your … Continue reading

Posted in category theory, combinatorics, diagrams, grad school, math, species, writing | Tagged , , , , | 15 Comments

Random binary trees with a size-limited critical Boltzmann sampler

Today I’d like to talk about generating random trees. First, some imports and such (this post is literate Haskell). > {-# LANGUAGE GeneralizedNewtypeDeriving #-} > > module BoltzmannTrees where > > import Control.Applicative > import Control.Arrow ((&&&)) > import Control.Lens … Continue reading

Posted in combinatorics, haskell, math, species | Tagged , , , , , | 13 Comments