I have written a simple interpreter for the lambda calculus in Haskell. I have done this to learn about the Church Encodings and the Scott Encodings. I think it's pretty neat that you can do all of programming from only functions and with no data-structures.
I hope to write a simple meta-interpter for the lambda calculus inside the lambda calculus, but that is in the works