I really liked the following article, which creates a text adventure language in Racket that looks like this:
===PLACES===
---desert---
"You're in a desert."
[cactus, key]
north start
south desert
http://queue.acm.org/detail.cfm?id=2068896