My Haskell Origin Story

Posted on May 30, 2016
Tags: haskell, education

How I Ended up a Haskeller

I’m a relative late comer to computer programming. My first attempt was learning some Visual Basic back in the 8th grade, trying to learn C++ as a teen, then playing with Ruby and Python shortly after getting my B.A. Amusingly enough, I actually learned about Haskell in 2005 or so.

Hearing about Haskell

Back in Finnish 10*, I did quite a bit of studying with a talented computational linguist who was writing an HPSG grammer of Dutch in Haskell. If you are this person, please feel free to contact me :-D. He mentioned that in Haskell, one could write mathematically provable programmes. That sounded totally rad, even though I had no idea at the time what exactly motivated that design. For years after that, I wondered about Haskell but figured it would too difficult for me, especially given the difficulty I had trying to learn Python.

The First Language

I got extremely luck my second year of graduate school. After having my heart settle on doing a seriously quantitative project, I sought help outside of Applied Linguistics in the Department of Psychology to learn as much as I could about statistics. Fortunately, a new faculty member was really big on the R language, and since I now had a very real need to learn to code, the previous experiences I had really clicked into place. Within about 4 months, I was feeling quite fluent in R.

Enter the Haskell

Towards the end of writing my thesis, I started playing with Haskell to take a break from my other work. I started reading with LYAH and making simple statistical modules. I even tried to write a Gibbs sampler, but that sort of stalled for reasons of not understanding proportionalities and integrals very well.

After that, I got a yen to try writing a concordancer for corpus analysis. I’ve written at length about this, but it drove me up the wall that Monoconc, AntConc, the COCA, and pretty much every concordancer I could find wouldn’t actually output the data in a useful format! No CSV, no TSV, just gooey GUIs and manually copying data to a spreadsheet.

Haskell Education

During all of this learning of Haskell, I kept running into the same thing: lots of beginner resources and lots of papers for experts. Repeatedly, I have felt a desire to bridge that gap. I have found Haskell to be a delightful challenge, but I understand feeling of being demoralised by the lack of up-to-date resources and example code. Another frustration is finding code that seems like it might be useful, but lacking explicit enough documentation.

Goals

I hope to use this space for documenting my Haskell learning on topics that tickle my fancy. I may post absurdly explicit, scaffolded code in order to help anyone who stumbles on it. Hopefully, this will make intermediate Haskell concepts clearer.