Here's another haskell experiment, it's my implementation of Conway's Game of Life. Implementing cellular automata like the Game of Life is a very fun way for me to get familiar with a programming language, and I hadn't done anything graphical in Haskell before so it taught me quite a bit. The most important thing being that it can be really hard to think in a functional way about something like this. My code is probably horribly inefficient so don't use it as an example of idiomatic haskell.
The source code can be found here. It depends on the packages
Graphics.UI.SDL. The easiest way to obtain these is to use the package manager Cabal, like this:
cabal install Random SDL
After that you can just compile it with GHC and run it:
ghc gol.hs ./gol
You can modify the contents of the initial field by changing the definitions in
where-block. There's an
emptyField definition as an example.