"Ability" doesn't imply "first-class support" or "good idea". In languages that aren't Lisp this usually ends up being done by passing a raw string to eval() which is extremely error prone. It's not something you do lightly.
Constructing macros in Lisp however /is/ something you do lightly. A typical lisp program might have a 20/80 division of macros/functions. You aren't going to see a sane program in other languages that do the same thing.
Io & Ioke are like Lisp here. You have full access to the parse tree and don't need to anything as crude as passing raw strings to eval().
> Constructing macros in Lisp however /is/ something you do lightly
For all the ease with which one can create macros in LISP, I haven't seen anything comparable to LINQ yet.
And while I've seen useful macros here and there, I haven't seen anything groundbreaking ... macros are mostly used when you need laziness.
Powerful? Yes. Easy to use? No.
If you haven't seen anything, did you actually look around?
Common SQL : http://www.lispworks.com/documentation/sql-tutorial/index.ht...
(loop for columns being the records of
[select [*] :from [SpeciesList]
:where aardvark]
do (print columns))
Common SQL provides some kind of embedded SQL that gets expanded with read macros and macros to more low-level Lisp code.
Also I think the the ability for a program to create a new program (I assume you mean on the fly) is probably inherent in all dynamic languages.