Common Lisp aka ANSI Standard X3J13. A popular LISP dialect. Most implementations compile to native code. Very few are purely interpreted or byte compiled.
Get started in Common Lisp with http://www.unmutual.info/startingwithcl.html.
Two unique things that make Common Lisp tempting, if you can get over the funny syntax:
- The Common Lisp Object System. Common Lisp appears to be the only language in common use that has multiple dispatch.
- Macros: with these you can create and use code generators and custom control structures with little fuss.
Perl6 is stealing them both. :) Although it won't likely be here for a few years yet. In fact multiple dispatch is already possible in Perl5, though not available natively - as always, a stroll through CPAN is helpful. --AristotlePagaltzis
Quote from Paul Graham's little essay What Made Lisp Different:
- 9. The whole language always available. There is no real distinction between read-time, compile-time, and runtime. You can compile or run code while reading, read or run code while compiling, and read or compile code at runtime.
- Running code at read-time lets users reprogram Lisp's syntax; running code at compile-time is the basis of macros; compiling at runtime is the basis of Lisp's use as an extension language in programs like Emacs; and reading at runtime enables programs to communicate using s-expressions, an idea recently reinvented as XML.
Resources
Websites
Books
Implementations
Free
- CMUCL -- Carnegie Mellon University Common Lisp
- SBCL? -- Steel Bank Common Lisp (favourite lisp compiler of GeoffCant)
- OpenMCL? -- Free derivative of Macintosh Common Lisp
Non-Free
- ACL -- Franz Allegro Common Lisp
- LW? -- Xanalys Lisp Works
- Genera? -- Symbolics Open Genera
Getting Started
IRC
- #lisp on irc.openprojects.net
Usenet