New Languages
It has been some time since I learned a new programming language. Perhaps Haskell has me so firmly entrenched in “desirable properties” that any new language I look at either looks like another...
View ArticleSentences and Paradigms
As our understanding progresses, what once were rigid distinctions tend to become blurred. Hence, I am fascinated by the pervasiveness and stability of the three programming language paradigms:...
View ArticleComputably Uncountable
We are all familiar with Cantor’s diagonal argument that proves there exist infinite sets which are “larger” than the set of natural numbers. In this post I will show that we can express this argument...
View ArticleDI Breakdown
I’m having a philosophical breakdown of the software engineering variety. I’m writing a register allocation library for my current project at work, referencing a not-too-complex algorithm which,...
View ArticleHow GADTs inhibit abstraction
Today I want to talk about this snippet: This program ought to be well-behaved — it has no recursion (or recursion-encoding tricks), no undefined or error, no incomplete pattern matches, so we should...
View ArticleConstructions on Typeclasses, Part 1: F-Algebras
This post is rendered from literate Haskell. I recommend doing the exercises inline, so use the source. > {-# LANGUAGE DeriveFunctor > , DeriveFoldable > , DeriveTraversable > ,...
View ArticleThe Plan
Last September, I decided that it was time to get a programming job again. After two months of trying to find paid work (of any kind, $10 would have been great!) as a composer, I realized that it’s...
View ArticleAlgebraic and Analytic Programming
The professor began my undergrad number theory class by drawing a distinction between algebra and analysis, two major themes in mathematics. This distinction has been discussed elsewhere, and seems to...
View ArticlePlayground Programming
Every now and then, I have a small idea about a development environment feature I’d like to see. At that point, I usually say to myself, “make a prototype to see if I like it and/or show the world by...
View ArticleSmart Contracts, Luke, and Music
A recruiter for DFinity, a nonprofit cryptocurrency company working in Haskell, reached out to me the other day. I did some research, read their whitepaper. The tech is pretty clever and interesting,...
View Article