Practical Common Lisp (Books for Professionals by Professionals) (英語) ハードカバー – 2005/4/30
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
* Treats LISP as a language for commercial applications, not a language for academic AI concerns. This could be considered to be a secondary text for the Lisp course that most schools teach . This would appeal to students who sat through a LISP course in college without quite getting it – so a "nostalgia" approach, as in "wow-lisp can be practical…"
* Discusses the Lisp programming model and environment. Contains an introduction to the language and gives a thorough overview of all of Common Lisp’s main features.
* Designed for experienced programmers no matter what languages they may be coming from and written for a modern audience―programmers who are familiar with languages like Java, Python, and Perl.
* Includes several examples of working code that actually does something useful like Web programming and database access.
Peter Seibel is a serious developer of long standing. In the early days of the Web, he hacked Perl for Mother Jones and Organic Online. He participated in the Java revolution as an early employee at WebLogic which, after its acquisition by BEA, became the cornerstone of the latter's rapid growth in the J2EE sphere. He has also taught Java programming at UC Berkeley Extension. He is the author of Practical Common LISP from Apress.
Perhaps a crud way of describing is that you know how a high-level language complies into an abstract syntax tree of some intermediate representation which then is converted into low-level code for actual execution? LISP has a phase in the middle of that, where not only can you manipulate the intermediate representation, but you can alter the grammar of the reader itself and construct your own language that's designed for your given application. It's code that generates and manipulates code -- not a transpiler, not a text-preprocessor, not a different way of looking at functions.
Practical Common Lisp does a *beautiful* job of explaining the concepts, the language, and the practical bits and pieces you need to know to get what's happening well beyond syntax. It's side discussions and footnotes are pure gold and themselves are worth the cost of admission. The book goes deep into the libraries, the differences between environments, and covers many gotchas.
The book actually changes the way you think about programming, even if you've done it for years. It's that good.
This is a great introduction to Common Lisp. Thankfully it doesn't get to the stuff I learned in my Lisp manual 40 years ago, CAR, CDR and similarly arcane functions until 1/4 of the way in to the book. Much of the insight in to the unique power of Lisp was lost in the orignal books while mucking around in list structures.
The light bulb starts to click on what a powerful language Common Lisp is in Chapter 5 about functions, and clicks on brighter in Chapter 7 on macros (despite my deep-seated reservations about macros as a long-time professional c/c++ programmer), and many chapters after that illuminate the power, flexibility, expressiveness and conciseness.
I have one small complaint. In my paper copy (yes I am a bit old skul and do better reading from ink on dead trees, but at least in my case the book will do an outstanding job of carbon sequestration since I don't burn books, nor do most others), the print is slighly faint and fuzzy, and varies some from page to page. I was reading without my glasses one night and saw the reason. The font is slightly fuzzy with dots on narrow parts of letters and alternating dark/light areas on thicker parts. This likely saves a fair amount of ink in printing, but it detracts from the appearance and readability of a very fine book.
One surprising thing missing from the book is any discussion of the art of debugging lisp. There is a discussion of handling error conditions and exceptions, but that is not debugging. There are some good links online (search Google for Common Lisp debugging), but given how different debugging Lisp is compared to other languages, where most readers will come from, a chapter on that would have put the final icing on an outstanding book.
After intending to purchase the textbook for that course here at Amazon and actually ordering it, I found this book. I wound up ordering this book and canceling the other (since it was online). If you are very low on funds, you can also find the text of this book online. I prefer a hard copy of the book for easier reference. This book takes me through not just learning LISP, but why certain features are unique and/or important. It is truly a great book for learning LISP.
Do yourself a favor and buy this book, it really is that good. Best of luck