F# has interested me for many years, so I figured it was finally time to bite the bullet and properly learn the language.
The data structure I chose to implement was a finger tree: a data structure with first-order nested types using monoids and reductions (via generics/parametric polymorphism). The reference paper is Finger trees - a simple general-purpose data structure (Hinze, Paterson). As a bonus, I also wanted to test C# interoperability with F# code.
I wrote this while learning F#, so I am afraid the code is not quite idiomatic. Nonetheless, I am very impressed with the language so far. See this blog post for more observations.
As of November 22, 2014, the project is complete, although I may return to it some day to add laziness. Currently the code is not optimized at all.
I have been consistently frustrated with the (sad) state of affairs with PCGen, an open source character generator for role-playing games. So I decided to write a Haskell program to parse the rule sets it uses, in the hopes that I would be able to build a better platform for myself and my gaming friends. Of course, this turned out to be a far bigger project than I anticipated.
Currently the code consists of a whole lot of monadic parsers. I'm not yet quite sure where all this will end -- but I'm already thinking about ways to write a better rule based inference engine. Maybe something on top of MiniKanren.
As of October 08, 2015, this is still a work in progress.
This project is currently being implemented. As outlined in this blog post I want a better way to track my programming, writing, and research habits. Since I (ab)use git, and have both private and public repositories scattered everywhere, I figured that I would jump on the Quantified Self bandwagon and make my own habit tracker.
I designed several wireframes on Balsamiq and I have since settled on several graphical representations for data: heat and tree maps. I am currently working on getting a basic Flask app up and running.
All of my public repositories are on github.