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

Edinburgh

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 , , , , , | 84 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

Patch theory thoughts, part I

So, I still don’t know whether I’ll actually end up writing a gobby clone in Haskell. But it’s already been a wild ride thinking about the theory behind it and some of the issues involved, and over the next few … Continue reading

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

Type theory, here I come…

For Christmas my parents got me a copy of Types and Programming Languages. w00t! I started reading it today on the subway coming home from work. Unfortunately I’m kind of anal about reading prefaces, introductions and so on, so I … Continue reading

Posted in learning | Tagged , | 1 Comment

Mapping over a nested functor?

The other day I had a triply-nested list of type [[[a]]], and found myself applying this function to it: sort . map sort . map (map sort) This annoyed me. I want a way to say, “map this function over … Continue reading

Posted in haskell, learning | 5 Comments