Category Archives: haskell

Idempotent Template Haskell

Yesterday I was looking for a way to have some Template Haskell code generate a definition for a certain identifier if and only if such a definition did not already exist. Essentially I want to be able to call the … Continue reading

Posted in haskell | Tagged , , , | 2 Comments

Hac phi 3!

Hac phi 3 is in full swing now: almost 30 people showed up for the first day of hacking yesterday and more are expected today! I’ve posted a few pictures here — more to come.

Posted in haskell | Leave a comment

Bit-rotted text adventure EDSL free to a good home

In early 2008 I started working on a Haskell embedded domain-specific language for authoring text adventure games. It didn’t get all that far since I didn’t know a whole lot about either text adventure games or Haskell. But I think … Continue reading

Posted in haskell, projects | Tagged , , , | 5 Comments

Themes on Streams, Part II

In a previous post I claimed that comonad structures on R -> a are in one-to-one correspondence with monoid structures on R. In this post and the next I’ll justify that claim. Characterizing comonads on R -> a Suppose we … Continue reading

Posted in haskell, math | Tagged , , , , | 2 Comments

Tic-tac-toe maps with diagrams

Inspired by Randall Munroe, here are some handy guides to optimal tic-tac-toe play, created with the diagrams EDSL. Click the images to open (zoomable) PDF versions. I hacked this up in just a few hours. How did I do it? … Continue reading

Posted in haskell, projects | Tagged , , , , | 12 Comments

Announcing diagrams preview release

I am extremely pleased to announce a "developer preview" release of the diagrams framework for declarative drawing. This is a well-thought-out, well-documented, working release with all core functionality in place, but with many planned features still missing (for example, support … Continue reading

Posted in haskell, projects | Tagged , , , , , | 7 Comments

trapd

Posted in haskell, humor | Tagged , , , , | 4 Comments

Themes on Streams

> {-# LANGUAGE DeriveFunctor, FlexibleInstances #-} Recall that a stream is a countably infinite sequence of values: > data Stream a = a :> Stream a > deriving (Functor, Show) > > sHead (a :> _) = a > sTail … Continue reading

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

Monoids for Maybe

The other day I had two lists of monoidal values that I wanted to combine in a certain way, and I realized it was an instance of this more general pattern: > {-# LANGUAGE GeneralizedNewtypeDeriving #-} > import Data.Monoid > … Continue reading

Posted in haskell | Tagged , , , | 8 Comments

Call for contributions: second edition of the Typeclassopedia

The Typeclassopedia, by all accounts, has turned out to be a popular and useful resource for Haskell programmers. I’ve been thinking for a while about putting out a revised and expanded second edition, and it’s finally time. Planned changes include: … Continue reading

Posted in haskell, writing | Tagged , , , , | 17 Comments