There's a page that describes
how to build a lisp interpreter in Haskell. Because it's only an tutorial, the Lisp interpreter at the end only supports numbers. How about following the tutorial through and understanding how the interpreter words, then expanding it to support strings, and add some more functionality to it. Experiment a bit.
This might be a bit complex, but it might be worth a try.