Category Archives: learning

Monads: Easy or Hard?

Executive summary: they are actually both (or neither). It is easy to learn their definition but hard to grasp the consequences. Or we might say they are easy to know and hard to understand (grok). It is vitally important for … Continue reading

Posted in haskell, learning, teaching | Tagged , , , | 4 Comments


I’m having a great time in Edinburgh so far! I’m currently at Heriot-Watt University for the International Summer School on Advances in Programming Languages, learning some interesting things but more importantly meeting interesting people. I’m also looking forward to meeting … Continue reading

Posted in learning, meta | Tagged , , | Leave a comment

2009 ICFP programming contest reflections

This year, unlike last year, I had the good fortune to be physically located in the same place as several other people interested in competing in the 2009 ICFP Programming Contest. We only ended up with three people—we could have … Continue reading

Posted in haskell, learning, puzzle | Tagged , , , , , | 2 Comments

First explorations in computer music

This week, I have taken some first steps in exploring computer music and live coding. Seeing as I am a classical and jazz pianist, amateur composer, and programming nerd, it seems odd that it’s taken me so long to get … Continue reading

Posted in haskell, learning, music | Tagged , , , , , , , , | 1 Comment

Abstraction, intuition, and the “monad tutorial fallacy”

While working on an article for the Monad.Reader, I’ve had the opportunity to think about how people learn and gain intuition for abstraction, and the implications for pedagogy. The heart of the matter is that people begin with the concrete, … Continue reading

Posted in haskell, learning, math, teaching | Tagged , , , , , | 93 Comments

The Poisson distribution and Stirling numbers

While working on an assignment for my machine learning class, I rediscovered the fact that if X is a random variable from a Poisson distribution with parameter , then where denotes a Stirling number of the second kind. (I actually … Continue reading

Posted in combinatorics, grad school, learning, math | Tagged , , , | 2 Comments

Patch theory, part II: some basics

(Previous posts here, and here.) So, let’s talk about patch theory! I should start by saying that I have obviously drawn a lot of ideas and inspiration from darcs, and especially from the wikibook explanation of darcs patch theory, but … Continue reading

Posted in haskell, learning, projects | Tagged , , , , | 6 Comments