Functionally Spacey

I'm taking a course on EdX called "Introduction to Space Operations". It's taught by Switzerland's first astronaut, Claude Nicollier, and aimed at giving students a basic understanding of the physical and technical aspects of planning a space mission such as launching a probe to a distant planet or putting astronauts into orbit. I signed up for it a few months ago because it sounded pretty awesome, and now I'm thinking that it might also be a good way to start broadening my programming knowledge a little bit.

Being a programmer, I'd love to be able to model some of the physics problems programmatically while creating an executable notebook; this is one of the areas where literate programming shines. The de-facto tool for doing so is iPython, which enables you to create interactive online notebooks which mix Markdown text with Python segments and distribute them on the web. However, I don't want to do this in Python - I want to learn something new.

One of my friends is a big fan of Haskell. I've tried to learn it off and on, putting in a few hours here and there, but it's a tough language to learn piecemeal. On the surface it's similar to most other functional languages, but I've found that when you start diving into the more advanced concepts things start to get harder. It's partly because the language is so different and partly because of its clean and elegant (almost mathematical) representation that I've had a bit of an itch to learn it.

So, in the vein of the Astro Haskell notebooks, I'm going to start taking my notes on this course in an iHaskell notebook (iHaskell being similar to iPython, and running in the same environment). It'll include some basic implementations of the functions that are needed to calculate the physics problems from the course, along with some exposition about how all of this stuff is supposed to work. Of course, the first step will be figuring out how to install the dang thing - it looks like the instructions in the Astro Haskell repo are a bit out of date.

Keep an eye out, some neat space stuff is coming your way.

If you like what I write, you can subscribe to my mailing list to get new posts in your inbox: