commented: So that's a DSL as in "a s-expression wrapper around an existing language", adding a layer of indirection. There's also "DSL" as in "my program's functions and control structures morph into my application's own little language", in theory bringing expressiveness and conciseness. I think that in practice the lisp syntax (or lack therefore) allows to quickly have the feeling you're using your own DSL, even if you're only using functions and maybe one simple macro. I don't think I was illuminated by "the power of DSLs" so far. Maybe that'll come. The one good freeing feature is code-is-data-is-code (and the CL environment 8-) ). .