Language Extension
A new control structure, such as SELECT, is a good example of extending a language.
Most languages allow user-defined functions, which provide a first level of language extension.
By providing a coherent set of extensions to Lisp, typically containing both macro and function definitions, you can create an embedded language (EL).
If you need a domain-specific language, an EL may be the way to go, because:
The EL takes advantage of its host language, Lisp, for its basic syntax, parsing, and for handling lots of generic functionality.
Example domains: knowledge representation, automatic theorem proving, text-processing, combinatorics, gene sequence processing.