The Communications of the ACM have an article about the Racket programming language. Racket is a Scheme-derivative which is part of the Lisp family of languages.
What makes Racket special is that it helps you create domain specific languages, you can create a specific language that makes it easy to address the problems in your domain. For example, you could create a small custom language in Racket that looks like Prolog to solve logic problems. One cool thing that they’ve developed are contracts for contract-based programming, where not only can you check the types of parameters, you can ensure that they fulfill a specific contract (for example, the function parameter age has to be above 0 and below infinity or the method argument name has to be a non-empty string).
It’s well developed and can be used in production, in case you’re wondering. I’ve personally deployed a Common Lisp application to Windows and Mac OS X for a client, and Racket can most definitely enable you to follow in my footsteps and deploy a Lisp-based program into production.
There’s even a cool book on how to use Racket for server-side/backend programming: Server: Racket – Practical Web Development with the Racket HTTP Server.