Where to start with the Lisp language
2016: start here: Lisp-Lang.org
If you're asking why lisp?-- or If Lisp Is So Great, why don't more people use it?-- I offer my personal answer and opinions, direct you to the back cover of Practical Common Lisp, a well respected study of languages and of course, Paul Graham's much discussed 2002 essay.
If you question Lisp's speed or power, these have long been addressed. As with anything, the more you know (and can get out of your own way), the better you become. Books mentioned below can help you get there.
- On-line Book: Practical Common Lisp -- HIGHLY RECOMMENDED
- by Peter Seibel;
Although free on-line, the
and trade paper
editions are still worth the price!
Peter does an excellent job presenting Lisp for contemporary tasks and offers appropriate comparisons to Python, Perl, Java, C++ and other languages.
Peter Seibel has performed a wonderful service by making his book free to read on his website.
- Book: Common Lisp Recipes
- by Edi Weitz; © 2016; for when you're versed in Peter Seibel's book (above) and ready to go deeper
- Book: ANSI Common Lisp
- by Paul Graham; © 1995;
The last 100 or so pages are the closest thing to an O'Reilly pocket reference that you're likely to find.
While I highly recommend his essays, this makes for a better second book by today's approach to learning languages. Once beyond the basics, it's beneficial having more than one source of information.
- On-line book: On Lisp
- also by Paul Graham;
It's still very much contemporary, despite predating the final ANSI spec of the following year. In fact, it comes highly recommended by seasoned Lisp programmers as the book for learning advanced macro wizardry.
After doing the occasional search for specific content and finally reading this fine book cover-to-cover, only now do I have a profound appreciation for it. However, I still place this as a third book to get for when you're ready.
Paul Graham clearly and gracefully explains things like what all the fuss about "functional programming" really means within context as well as revealing idiomatic usage, so it's like having a Lisp hacker at your side!
This is truly a gift to the community!
- On-line book: Successful Lisp: How to Understand and Use Common Lisp
- by David B. Lamkins, © 2003 (Forward by Richard P. Gabriel) 3-937526-00-5
- Other Lisp books
- Those published prior to the mid-1990's are cataloged at the old Lisp FAQ: 1.3 and also worth noting is Structure and Interpretation of Computer Programs [Scheme]. There are many other wonderful and worthwhile books such as a couple from Peter Norvig. By the time you're ready, you'll know and will find them.
- Try: interactive Lisp via Telnet
- This is free access to Allegro Common Lisp! (Alternatively, use the
Better yet, use it while following this wonderful tutorial on Lisperati.
- Browse: The Common Lisp Cookbook
- A collection of software techniques in Lisp. (This is not yet an actual book-- just a repository of code.)
- Download: Common Lisp Open Code Collection (clocc)
- Download: Lispbox
- a special version of Lisp in a Box with Emacs pre-configured sufficient for learning (but be aware that certain features may be disabled to avoid confusion while working through examples in the book).
- Dynamic Learning Center
- for teachers and students
- Usenet News: comp.lang.lisp
- via google
- Common Lisp engines, advocacy and education, circa late 2007 and updated through 2010
History & Standards
- Since many of us weren't there as Lisp itself was being developed, learning the history is helpful in understanding why things are the way they are such as naming conventions, etc. Continue reading if you're interested in such matters...
- Start with this Gabriel and Steele article: The Evolution of Lisp
- A short version may be found as a chapter of History of Programming Languages II.
- CDR: watch postmodern Lisp standards as they take form
- Common Lisp Document Repository
- ANSI Common Lisp standards: NCITS/J13 Document Repository
- NCITS/J13 is the InterNational Committee for Information Technology Standards (NCITS) technical committee for Lisp. J13 maintains the ANSI standard for Common Lisp.
- For historical purposes: notes from the 1994 ANSI X3J13 standards process
- Common Lisp the Language, 2nd Edition (CLtL2)
- Warning: this was published while ANSI Common Lisp committee was still working, so some things changed; See Converting CLtL2 to ANSI CL
- ANSI and GNU Common Lisp Document
- Partial history of Emacs
- Faré's A few things I know about LISP Machines
- Features documents on early Lisp-based computers, among many other things.
Jobs-- employers & employees
- LISP (n.b., it's no longer written in all caps.)
- Please write "
Anyone using the former notation in the twenty-first century probably only used the language in college for one or two classes; regardless, it's a clue that their Lisp understanding and/or skills are outdated.
PS -- While you can use it as merely a substitute for just about any language, it's best to learn the Lisp idioms for efficiency, readability and reuse. As someone who knew Perl and Java, was able to adopt Python and start writing production code after a day or two, you may find it takes a year to reach an equivalent level of proficiency with Common Lisp.
The learning curve can be fierce, but you're probably learning Lisp, Emacs, SLIME, how to interpret the HyperSpec and which libraries to use, all at the same time.
There's no magic pill to bypass the learning curve; there's no need to modernize Lisp's syntax; there's a strong and valid reason why libraries standard in other languages are effectively rewritten by each Lisp hacker; and when you're about one year into progressively deeper Lisp development, you'll understand, appreciate and relish the reasons why! That's a good place to be, and this page is to help you get there.