...it has a fresh view on the language and the examples in the later chapters are usable in your day-to-day work as a programmer. — Frank Buss, Lisp Programmer and Slashdot Contributor
If you're interested in Lisp as it relates to Python or Perl, and want to learn through doing rather than watching, Practical Common Lisp is an excellent entry point. — Chris McAvoy, Chicago Python Users Group
Lisp is often thought of as an academic language, but it need not be. This is the first book that introduces Lisp as a language for the real world. Practical Common Lisp presents a thorough introduction to Common Lisp, providing you with an overall understanding of the language features and how they work. Over a third of the book is devoted to practical examples such as the core of a spam filter and a web application for browsing MP3s and streaming them via the Shoutcast protocol to any standard MP3 client software (e.g., iTunes, XMMS, or WinAmp). In other "practical" chapters, author Peter Seibel demonstrates how to build a simple but flexible in-memory database, how to parse binary files, and how to build a unit test framework in 26 lines of code.
Finished the first 11 chapters. Generally speaking, I prefer scheme's syntax than common lisp's. It would be more fun to code in scheme.
However, this book is worth reading for a better understanding of common lisp. I enjoy its practical materials. A preparation for reading PG's On Lisp.
I'll finish the rest later this year. Apparently, I have a more much important project to do, and I'm not going to use CL for it, at least now.
Starts gently like the “Gentle Introduction to Symbolic Computation,” but after introducing some necessary language constructs quickly moves into more practical territory. The book has no exercises, and I've read it without running the associated code, so the final quarter of the book was challenging to understand.
I liked that code is developed gradually, and the reasons for every addition are clearly explained, so that they don't come out of nowhere. When introducing new concepts, Seibel also often shows how to implement a simpler version first using the knowledge already available to the reader.
Indeed, a practical and proven book that I'm glad to have in paper—I'm sure I'll refer to it again and again.
I started this book several times, but always abandoned it after a couple of chapters. This time I decided I won't give up, and am quite happy I finally finished it.
While I find a lot of the examples rather boring (I guess in 2010 streaming MP3 just isn't so hot anymore), they are good examples of practical CL code, like the title promises.
The writing style is engaging enough and Seibel makes sure to always include background information and links for further reading, which I very much appreciate.
Definitely a good intro to Common Lisp, with lots of working code that actually does something.
By far the best book on the topic. I wish more books were written in this manner. It is not just a reference, it goes in to why things are the way they are and that appeals to me.
Everyone has taken a LISP course one in their lives? I bet that if you took this book first, you would still be using it.
If your world is full of graphs, as opposed to tables, LISP is just so beautiful.
I read most of this book and skimmed some of the latter part, but found it excellent. A real eye-opener to what Common LISP is really all about. Actually a very powerful language that I would enjoy trying, though I'm learning Clojure right now instead. This is a well-written description of all the language has to offer.
One of the clearest books on programming with LISP and indeed dynamic programming in general. This is one in a thousand, definitely worth reading even if you are not at all into LISP and (yet) into functional programming.
I personally found this book a disappointment... With all the reviews and high ratings of this book, it really did not live up to all the hype. For readers that truly want to learn the Common LISP programming language, I would recommend the Touretsky, "Common LISP: A Gentle Introduction".
For a seasoned developer looking to learn some Common LISP, this might be the best entry point to get up to grips with the language and grok enough of its concepts to be productive in a relatively short period of time.
Unlike other references that skip some of the more advanced topics like CLOS or baroque uses of the LOOP macro, this book does not shy away from going into detail and explaining how things work under the hood. And there's even more in the footnotes if you're interested in the specific intricacies or quirks of some feature.
FWIW I never managed to read this in one sitting, or even sequentially. For people who know other LISP dialects or are familiar with programming concepts, this work is still useful as a quick reference for looking things up.
Enjoying it so far, and really looking forward to start writing some CLISP. But I have other priorities now, and those will keep me quite busy for a good while (new paternity, day job, finishing a short story I started writing, and a side project). So I have to shelve Lisp for now :/
Intermediate book on Common LISP. Covers all the topics that is needed for using this language to accomplish practical needs of constructing software. Free copy available on authors website. No exercises but all the code listings mentioned in the book can be downloaded from the website.
A great introduction to understanding the world of Common Lisp. Although sometimes dry, this book did a really good job of demystifying the language for me, and making me aware of many of the myriad of features that it contains.
I thought it was a pretty great book on Lisp, although it's hard to distinguish how much of this is from the elegance of the language itself, my understanding of computer languages in an abstract sense, or the writer's ability to put together a sticky and comprehensive tutorial.
I certainly didn't feel like this book went overlong, as many tutorials so. Every chapter felt really short, and explained everything relatively tersely. The author seemed happy to talk about theory and esoteric concerns in the footnotes, which I chose to read and sometimes become overwhelmed by, but this was an option I had.
While the book is organized well as a primer, it is somewhat overwhelming in that functions are just thrown at you in related groups for each chapter. Having read through this book once has taught me the basics of the language but hasn't necessarily taught me how to *think* in LISP (the way Land of LISP: Learn to Program in LISP, One Game at a Time! seems to be approaching it. That being said, when I finally say "I should really get familiar with doing X in Lisp" I will probably know exactly where in PCL to look. I have a feeling that every primary feature of Lisp is touched upon in the book, it's just a matter of retaining it and perhaps understanding the context.
It's hard for me to gauge because I have programming languages (including functional ones like Scheme) under my belt already, but if you want to learn Common Lisp I'd definitely pick up this book as one of my first. I wouldn't sweat comprehending it too much, but it would at least give me an overall view of the terrain before I went into books like Land of Lisp or other books on functional programming before coming back and constantly referencing this book as I was getting my sea legs going.
Every software developer evolves during his career and that can be done by several ways, which are not really conflicting but it's possible to get better with any of them not all. Some people prefer to stick to one language and use it to build bigger systems or implement more and more complex algorithms, but it somewhat limits their ability to see if there are better ways to solve problems. Language defines thinking and it's true not only about natural languages but also about programming ones.
Doing programming on the daily basis I'm always fascinated how different the expressiveness of the different languages is and lisp family can be treated as the most expressive one and one of the reasons is that it's one of few families where software is created not only by writing modules or packages but also by shaping language syntax to fit best to task at hand.
This book provides an excellent overview to Common Lisp language starting from basic constract and going foreward with real world examples and more complex things like macroses. This miracle is really worth looking at especially if you're coming from the language that is not designed to be extensible. I especially liked who naturally author used macros applicationin the examples he provides.
The bit of disappointment for me was when I got the understanding the scale of legacy Common Lisp has in it's standrad labrary as well as in the development process, package management etc. In comparison clojure is designed perfectly including basic structures, concurrency support and standard library and common lisp community virtually does not exist if you comparing volume of things happening in clojure world. Nevertheless, I think it's worth digging into the language and see on what can be done with it nawadays and this book is an excellent guide to do it.
Even if you haven't done, and don't plan to do, any lisping, you should definitely read this book. It didn't change my life, but it definitely helped refine some of my reflections on languages and code craft. It's amazing how much of Lisp's legacy is in the languages we use, how little we realize it, and how difficult it is to articulate the missing pieces, at least until you experience Lisp, practically.
This book made me a better programmer, and is leading me into exploring more of Clojure, the "no body ever got fired for deploying on the JVM" Lisp.
I don't feel that this is the right book if you are new to lisp.
If you are completely new to lisp my advice is to go start with scheme. The little schemer and the rest, or if you really want to learn common lisp take another one that goes deeper into the language.
On the other hand if you are already familiar with lisp and you want to see what common lisp can do in a practical way this is your book, though sometimes it gets a bit boring in a "reference way", just throwing facts at you.
This is one of the better learn-a-language programming books I've seen. Seibel doesn't shy away from showing you the hard stuff, and emphasizes what's different about CL. You don't come away feeling like you need a more advanced book to teach you how to really be productive the way pretty much every Smalltalk book makes you feel (for example). It's in-depth without making you wade through reams of listings.
So far I downloaded LispWorks did most of the first chapter of PCL. I got as far as building a CD database in 20 lines. With interactive input. And the ability to save and re-load data. In about 20 lines.
So I have finished reading this book. The last sections were not that interesting. What I have enjoyed the most are the explanations about CLOS, the conditions and restarts, and the recommendations for further reading in the last chapter. I now understand why Common Lisp is not really a success. From the start, it didn't know what it wants to become: a Lisp compatible with as much as possible of previous Lisps? A Lisp which is good enough to be usable for real-world applications? A Lisp that includes as much as possible of esoteric constructs? In the end all of these played a role in the final product and in the end it's not a very consistent language. Well, at least I know that if I need to use a Lisp, it's better to use Scheme, because it's consistent, the authors really made something they believe makes sense, and it doesn't have things like LOOP. By the way, what I have written is only part of my opinion at the present date. First I don't have time to write my opinion in full, and second, my opinion changes all the time, so if I have to write something similar tomorrow it would certainly contradict with what I think today. Nevertheless I'm ready to discuss its contents and hear opinions of other people.