As I explore Haskell, I’m discovering that one of its trickiest aspects is not
structuring things functionally, but the lazy evaluation. It turns out lazy
evaluation comes with both great benefits, and significant difficulties. I’d
like to point a few of these out, as they’re becoming clearer to me.
[...]
I’ve been reading Real World Haskell now, after having finished the delightful
Learn You a Haskell Tutorial. I’m up to chapter 6, about to dive into
Typeclasses. In the meantime, I’ve picked a toy project that also has a taste
of usefulness: a script to convert the Hackage database into MacPorts
Portfiles, respecting inter-package and external library dependencies. I call
it HackPorts, of course.
[...]
Recently I changed how the content on this site was generated, from using the standalone OS X application RapidWeaver, to the server-side publishing platform Movable Type. During that transition I changed the site’s style to the minimalist default offered by MT, which uses its own CSS for column layout and typography. Tonight I finally got around to switching the site [...]
Today I need a wrapper script to drop arguments from a command-line. I
instinctively reached for bash
, but then thought it would be a good exercise
for my infant Haskell knowledge.
[...]
Everybody talks about Monads when they mention Haskell, so I got a bit ahead
of myself and wanted to see something of what they’re about. No, don’t worry,
I’m not aspiring to yet another Monad tutorial. I feel I have a ways to go
before I’m ready to craft my own light-saber.
I did read about 10 Monad articles on the Web, and found myself more confused
when I came out than when I went in. Today’s exercise took about 5-6 hours of
pure frustration, before a kind soul on IRC finally set me straight. It sure
is difficult when getting past a single compiler error takes you hours.
[...]
Having just begun my descent down the rabbit hole, I thought I’d try
journaling about what I discover along the way, so that those who are merely
curious can play the part of language voyeur. I’ve always wanted to do that:
to see how someone dives into Erlang or O’Caml or Forth – or Haskell. Here’s
your chance.
[...]