I just created my first DSL, called Nemesis, in Haskell. It's modeled after Rake.
A single file named Nemesis containing dependency specifications, something like this:
1 | |
I'm planning to use Nemesis instead of Rake from now on, since Nemesis compiles to machine code and can be blazingly fast. I'm happy :)