Metacircular thoughts

March 5, 2007

A Haskell study plan

Filed under: Haskell — metacircular @ 8:05 pm

As I mentioned, I’ve been learning Haskell. It is definitely the most challenging language I have ever learned. It is also probably the coolest.

Here is a collection of things I found to be useful.

  • Yet Another Haskell Tutorial is good for getting started. I kind of fizzled out near the end.
  • Good Math, Bad Math has a series of articles that take you from “Why Haskell?” to monads. I thought his explanation of monads was kind of poor if you haven’t already thought about them a bit.
  • Speaking of monads. Monads have been extremely challenging for me.
  • I am currently trying to understand monad transformers, which allow you to use multiple monads together. All About Monads claims to explain them in part III, but he tries to explain them using continuations, another obscure topic people have trouble with! I have not finished digesting/disregarding the following articles.

The flow for reading this non-linear. Jump around, find different sources, look at the material on the Haskell homepage (including Don Stewart’s article on making your own simple IRC bot, for motivation), take a break, come back to it. I have been iterating on monads for about a week and a half now. If you get stuck, the Freenode #haskell channel has been extremely helpful and kind. If you aren’t asking them to do your homework for you, they’re quite willing to help out. They have a Haskell pasting system, hpaste, which is integrated with the chat room, as well as an IRC bot that can evaluate Haskell expressions and do other helpful things. Try it: irc.freenode.net #haskell! It’s full of helpful, smart people. I have never seen it with less than 300 people in it.

From what I can tell, monads and using monads for real stuff are challenging even to experienced, bright people like the Good Math, Bad Math guy (he said he decided to blog about Haskell because he had trouble with combining monads and monad transformers).

This is the first time I have ever really put my mind to something and failed to understand it. I can understand abstract algebra and real analysis, continuation-based web programming, pointers in C, recursion, dynamic typing and higher-order functions, but Haskell has made me its bitch.

3 Comments »

  1. I’m glad you found my monad transformer example instructive. I’m still getting my head around everything involving monad transformers, I need to write less java, and more haskell!

    I can see why you might think I support illegal immigration. I absolutely do not. I love photography and crowds however, so this was an interesting event for me to attend and document. The header is there because I enjoyed the photograph, it is not a political statement for me.

    Comment by Greg Heartsfield — March 5, 2007 @ 9:22 pm | Reply

  2. > This is the first time I have ever really put my mind to something and failed to
    > understand it.

    As a challenge, maybe you can try to understand why pauperized people are trying to immigrate to the USA to make a proper living and feed their family…

    Sorry not as cool as Haskell…uh ?

    Comment by Richard — August 12, 2007 @ 12:07 pm | Reply

  3. Richard said:
    > As a challenge, maybe you can try to understand why pauperized
    > people are trying to immigrate to the USA to make a proper living
    > and feed their family…

    Nice straw man argument, Richard. Maybe you should try reading for *your* challenge. Warren wasn’t saying anything about the plight of the illegal immigrants; he merely implied that “America has the right to defend its borders [and] its sovereignty” which is correct and orthogonal to what you were trying to put in his mouth.

    BTW, Warren, thanks for your study plan. It is very informative and helpful.

    Comment by Rick — September 14, 2007 @ 1:42 pm | Reply


RSS feed for comments on this post. TrackBack URI

Leave a comment

Blog at WordPress.com.