Track Awesome Common Lisp Learning Updates Weekly
A curated list of awesome Common Lisp learning resources
🏠 Home · 🔍 Search · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor · 😺 GustavBertram/awesome-common-lisp-learning · ⭐ 175 · 🏷️ Programming Languages
Oct 16 - Oct 22, 2023
Online Community
- Exercism's Common Lisp track - An excellent way to learn the language through practice, have your code reviewed, and to discuss solutions with other people.
Sep 04 - Sep 10, 2023
How To Use
- Try out Exercism.
May 17 - May 23, 2021
Online Community
- The #clschool, #lisp, #ccl, #sbcl and other rooms on the Libera.Chat network are great places for learning about Common Lisp. (Freenode should be avoided.)
Nov 30 - Dec 06, 2020
Online Community
- Lisp Discord server - Is a Discord for Lisp. Has a channel dedicated to Common Lisp and will happily answer questions.
Jan 13 - Jan 19, 2020
How To Use
- If you get stuck, find an online community and ask smart questions.
Lisp Environments
- Prepackaged environments
- Portacle - A portable and multiplatform Common Lisp environment. It ships a slightly customized Emacs with SLIME, SBCL (a popular Common Lisp implementation), Quicklisp and Git. No installation needed, so it's a very quick and easy way to get going.
- Lispbox - An IDE (Emacs + SLIME), Common Lisp implementation (Clozure Common Lisp) and library manager (Quicklisp), pre-packaged as archives for Windows, macOS and Linux. Descendant of "Lisp in a Box" mentioned in Practical Common Lisp.
- Lispworks Personal Edition - A non-Emacs based IDE for LispWorks Lisp, with some restrictions.
- Allegro Common Lisp - Has a free Express Edition IDE, and training videos on YouTube.
- For advanced users
- Articulate Common Lisp - A HOWTO for putting together a Lisp environment, and has information on useful libraries and how to structure projects.
- If you're an experienced Emacs user, you can just install SLIME and a supported Common Lisp implementation. See the SLIME manual for more details.
- The Common Lisp Cookbook has more information about installing an implementation using an implementation manager like Roswell (⭐1.7k), or on Docker.
Online References
- The Common Lisp Hyperspec (CLHS) - The language reference document for Common Lisp. Bookmark it now.
- Chapter 7 - Covers the Common Lisp Object System (CLOS).
- The ANSI Common Lisp Standard Draft - The last draft version of the ANSI INCITS 226-1994 (previously ANSI X3.226-1994) standard.
- The draft is free, the standard isn't.
- It's pretty much the same as the official standard, and some people prefer it to the CLHS.
- The Common Lisp Cookbook - A list of useful Lisp recipes. Also contains a list of other online sources of CL information.
- Common Lisp the Language (2nd Edition) by Guy L. Steele - A description of the Common Lisp language from just before it was standardized by ANSI. Don't use it as a reference.
- Cliki on CLtL2 - Claims it has more useful descriptions of LOOP and FORMAT than the CLHS does.
- Stack Overflow on CLtL2 - Some recommend using CLtL2 for insight and inspiration, but to use the CLHS when programming.
- A list of differences between CLtL2 and the ANSI Common Lisp specification.
- Chapter 28 - Covers the Common Lisp Object System.
Online Books
- Common Lisp: A Gentle Introduction to Symbolic Computation by David S. Touretzky - a good introduction for people new to programming. Contains code for really useful utilities like DTRACE and SDRAW.
- Common Lisp: An interactive approach by Stuart C. Shapiro - A textbook that teaches mainly through the use of exercises.
- Practical Common Lisp by Peter Seibel - A great introduction for experienced programmers, and tries to highlight from the very beginning what makes CL different to other languages.
- Common Lisp Koans (⭐3k) - Not exactly a book, but a set of koans to help you learn the language.
- On Lisp by Paul Graham - A great book for intermediately experienced Lispers.
- Let Over Lambda by Doug Hoyte - An advanced book on Lisp Macros.
- The first six chapters are available online.
- Comments on Let Over Lambda - Several people recommend that you be comfortable with On Lisp before reading this book, and that the start is slow.
- The chapter on closures - Has several non-trivial examples, and demonstrates the power of this feature.
- Paradigms of Artificial Intelligence Programming by Peter Norvig (⭐6.9k) - Has many interesting applications of Lisp, but is no longer a good reference for AI.
Offline Books
- Land of Lisp by Conrad Barski, MD - A fun introduction to Lisp that uses comics and has you writing games.
- Available as an ebook.
- A couple of the LOOP macros are written
for x for y...
which you can change tofor x from 0 for y...
to make them work in SBCL. - Has an errata page.
- Most of the book is entertaining and fairly easy, but gets hairy from about Chapter 18. It doesn't feel like later chapters introduce much, so I recommend switching to a different book at that point.
- The Web server example in Ch 13, 19 and 20 will only work on CLISP, and needs the addition of HTTP response headers to render the HTML properly.
- ANSI Common Lisp by Paul Graham - Good as a reference, covers CLOS, and has several example program implementations.
- Common Lisp Recipes by Edmund Weitz - A great set of Common Lisp patterns.
- Object-Oriented Programming in Common Lisp by Sonya E. Keene - An in-depth description of the CLOS, and shows how to use it with example applications.
- The Art of the Metaobject Protocol by Gregor Kiczales, Jim des Rivieres, and Daniel G. Bobrow - Describes the CLOS Metaobject Protocol (MOP).
- Chapters 5 and 6 (available online) - The specification of a metaobject protocol extension to CLOS, by Robert Strandh.
- Superseded by the modern public domain CLOS MOP specification by Jean-Philippe Paradis (Hexstream).
- Adam Tornhill on AMOP - Recommends reading Practical Common Lisp, then Object-Oriented Programming in Common Lisp, and then AMOP.
- Chapters 5 and 6 (available online) - The specification of a metaobject protocol extension to CLOS, by Robert Strandh.
Online Community
- The Cliki - The Common Lisp Wiki. A great resource for all things CL. Has a great Getting Started page and an extensive list of Lisp books.
- Lisp Subreddit - An active community, and has loads of useful links and reference documents in the sidebar.
- Common Lisp Subreddit - The Subreddit for Common Lisp.
Library Management
- Quicklisp - A package management platform for Lisp libraries.
- Quickdocs - Documentation for projects in Quicklisp.
- State of the Common Lisp Ecosystem, 2015 - Article about what libraries you should use, and why.
- Articulate Common Lisp - Lists some useful libraries.
Common Lisp Implementations
- Allegro Common Lisp (ACL) - Commercial, but has a free Express Edition.
- LispWorks - Commercial, but as mentioned previously, has a Personal Edition with minor limitations.
- Steel Bank Common Lisp (SBCL) - My personal favorite.
- Scieneer Common Lisp (SCL) - A commercial Linux and Unix implementation, but has an unrestricted free evaluation and non-commercial use version.
Apr 09 - Apr 15, 2018
How To Use
- Get a Lisp environment.
- Bookmark the The Common Lisp Hyperspec.
- Download and work through a Lisp book of an appropriate level. Type the examples and play with the code. Feel free to switch books and try a different one.
- Learn about Quicklisp.
- At some point, read your Lisp implementation's manual.