Author Archives: Brent

BlogLiterately 0.6

I’m very proud to announce the release of BlogLiterately version 0.6, a tool for formatting and uploading blog posts, including syntax highlighting, generation of ghci sessions, LaTeX support, automatic image uploading, and more. tl;dr: Instead of cumbersomely specifying all options … Continue reading

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

The Dawn of Software Engineering

The Dawn of Software Engineering: From Turing to DijkstraEdgar G. Daylight Edgar sent me a review copy of his book a while back—it made for quite interesting reading and gave me new perspective on the historical origins of my field. … Continue reading

Posted in haskell | 3 Comments

The algebra of species: primitives

[This is the fifth in a series of posts about combinatorial species. Previous posts: And now, back to your regularly scheduled combinatorial species; Decomposing data structures; Combinatorial species definition, Species definition clarification and exercises.] Recall that a species is a … Continue reading

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

Diagrams 0.6

I am pleased to announce the release of version 0.6 of diagrams, a full-featured framework and embedded domain-specific language for declarative drawing. Check out the gallery for examples of what it can do! Highlights of this release include: Diagrams now … Continue reading

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

Species definition clarification and exercises

[This is the fourth in a series of posts about combinatorial species. Previous posts: And now, back to your regularly scheduled combinatorial species; Decomposing data structures; Combinatorial species definition.] In my previous post I neglected to mention something quite crucial, … Continue reading

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

Teaching abstraction

I’m just beginning to prepare for the third incarnation of CIS 194, Introduction to Haskell in the spring. It’s occasioned some general thoughts on teaching abstraction which seemed worth writing down. Abstractions, of course, are everywhere in CS. By abstraction … Continue reading

Posted in teaching | Tagged , , , | 8 Comments

Combinatorial species definition

Continuing from my previous post, recall that the goal of species is to have a unified theory of containers with labeled1 locations. So, how do we actually specify such things (leaving aside for the moment the question of how we … Continue reading

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

foldr is made of monoids

> import Data.Monoid In his recent blog post What is foldr made of?, Tom Ellis made the clever observation that foldr is equivalent in power to the combination of map and compose, where > compose :: [a -> a] -> … Continue reading

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

Using multiple versions of GHC in parallel with GNU stow

Do any of the following apply to you? You sometimes hack on GHC. You sometimes want to try out an unreleased GHC version. You maintain a library and want to make sure it builds with several different versions of GHC. … Continue reading

Posted in haskell | Tagged , , , | 10 Comments

Decomposing data structures

So, what are combinatorial species? As a very weak first approximation, you can think of them as a generalization of algebraic data types.1 That doesn’t really say much about what they are, but at least it does explain why programmers … Continue reading

Posted in math, species | Tagged , , , | 9 Comments