A pet R7RS Scheme interpreter.
I'm writing it first in Haskell because that is easier/fun, and then hopefull again in C as an exercise/challenge so that I'm forced to figure out low-level things such as memory management, etc. rather than relying on high-level languages where the hard parts are already done for me.