Structure and Interpretation of Computer Programs, Video Lectures. Lisp Isn’t Really a Programming Language. In Lisp, DSL’s are free.
In fact, practically any program written in Lisp could be considered to be a DSL. First Class Procedures are a big part of this. Any procedure you write becomes a part of the programming language– your procedures are indistinguishable from the built-in ones. How to Design Programs. MIT 6.001 Structure and Interpretation, 1986.