Duane’s Quick Posts

 
« Back to blog

The Haskell Rabbit Hole

As a programmer, curiosity is most often a helpful asset that leads to a grander and more unified understanding of computer science.  With Ruby, for example, I quickly learned about the usefulness of closures because the array methods like "map" and "select" were so helpful.  Closures became a new tool in my toolbox--something I could apply almost everywhere.


Haskell is teaching me things, but not in the same innocent way that Ruby did.  It is definitely pushing me to my limits--recently I feel like a wet-behind-the-ears programmer more often than I can remember.

I'm building a little game in Haskell using OpenGL.  Innocently, I found out about Functional Reactive Programming and suddenly I'm on a trail learning about a "generalization of Monads called Arrows", as well as combinators and functional composition in "lifted" spaces.  I'm not even sure I'm using the right words to describe what I don't understand :)  Next, I decided I'd try loading a VRML file that I had created in Wings3D.  Haskell doesn't have a VRML (".wrl") parser that I know of... so I started looking up parsers in Haskell.  "Hmmm," I wondered, "What's this 'parsec' thing everyone is talking about?"  Oh, it's a "monadic parser combinator in Haskell" that other languages have apparently tried to emulate.

All I can say at this point is, "Wow."  There is so much out there that I do not understand.  I thought I knew a lot about programming through 6 years of university.  It turns out I had only scratched the surface.  Beware, there's a rabbit hole underneath that grassy knoll!

Comments (0)

Leave a comment...

 
To leave a comment on this posterous, please login by clicking one of the following.
Posterous-login     Connect     twitter