[Source](http://www.gigamonkeys.com/book/ "Permalink to Practical Common Lisp") # Practical Common Lisp ![][1] # ![][2]Practical Common Lisp![][3] that book is dead sexy —Xach on #lisp ([more blurbs][4]) This page, and the pages it links to, contain text of the Common Lisp book _Practical Common Lisp_ published by [Apress][5] These pages now contain the final text as it appears in the book. If you find errors in these pages, please send email to [book@gigamonkeys.com][6]. These pages will remain online in perpetuity—I hope they will serve as a useful introduction to Common Lisp for folks who are curious about Lisp but maybe not yet curious enough to shell out big bucks for a dead-tree book and a good Common Lisp tutorial for folks who want to get down to real coding right away. However, don't let that stop you from buying the printed version available from Apress at your favorite local or online bookseller. For the complete bookstore browsing experience, you can read the [letter to the reader][7] that appears on the back cover of the treeware edition of the book. _Coders at Work_ out! My new book, [_Coders at Work_][8], a collection of Q&A interviews with fifteen all-time great programmers and computer scientists, is out and available from [Amazon][9], [Barnes & Noble][10], [Powell's][11], other fine booksellers near you and as an [eBook from Apress][12]. Buy _Practical Common Lisp_ now [Amazon][13]![][2] | [Powells][14] | [Barnes & Noble][15] * * * **Download source code: [**tar.gz][16] | [zip][17] * * * Spread the word Like what you've read? Then help spread the word. Recommend this book to your friends. Write a [review][18] on Amazon. Blog about it. Link to this page from your web site. Whatever. Apress took a chance, publishing this book when other publishers thought there was no market for a Lisp book. While it's unlikely that I'll get rich off my royalties, we don't have to sell all that many copies for Apress to turn a profit and show the naysayers that Lisp has legs yet. 1. [Introduction: Why Lisp?][19] 2. [Lather, Rinse, Repeat: A Tour of the REPL][20] 3. [Practical: A Simple Database][21] 4. [Syntax and Semantics][22] 5. [Functions][23] 6. [Variables][24] 7. [Macros: Standard Control Constructs][25] 8. [Macros: Defining Your Own][26] 9. [Practical: Building a Unit Test Framework][27] 10. [Numbers, Characters, and Strings][28] 11. [Collections][29] 12. [They Called It LISP for a Reason: List Processing][30] 13. [Beyond Lists: Other Uses for Cons Cells][31] 14. [Files and File I/O][32] 15. [Practical: A Portable Pathname Library][33] 16. [Object Reorientation: Generic Functions][34] 17. [Object Reorientation: Classes][35] 18. [A Few FORMAT Recipes][36] 19. [Beyond Exception Handling: Conditions and Restarts][37] 20. [The Special Operators][38] 21. [Programming in the Large: Packages and Symbols][39] 22. [LOOP for Black Belts][40] 23. [Practical: A Spam Filter][41] 24. [Practical: Parsing Binary Files][42] 25. [Practical: An ID3 Parser][43] 26. [Practical: Web Programming with AllegroServe][44] 27. [Practical: An MP3 Database][45] 28. [Practical: A Shoutcast Server][46] 29. [Practical: An MP3 Browser][47] 30. [Practical: An HTML Generation Library, the Interpreter][48] 31. [Practical: An HTML Generation Library, the Compiler][49] 32. [Conclusion: What's Next?][50] Copyright © 2003-2009, Peter Seibel [1]: http://www.gigamonkeys.com/small-cover.gif [2]: http://www.assoc-amazon.com/e/ir?t=gigamonkeys-20&l=as2&o=1&a=1590592395 [3]: http://www.gigamonkeys.com/jolt_logo16_sm.gif [4]: http://www.gigamonkeys.com/blurbs.html [5]: http://www.apress.com/9781590592397 [6]: mailto:book%40gigamonkeys.com [7]: http://www.gigamonkeys.com/letter-to-reader.html [8]: http://www.codersatwork.com/ [9]: http://www.amazon.com/gp/product/1430219483?ie=UTF8&tag=gigamonkeys-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1430219483 [10]: http://search.barnesandnoble.com/booksearch/isbninquiry.asp?box=1430219483&pos=-1&EAN=9781430219484 [11]: http://www.powells.com/biblio/71-9781430219484-0?search_avail=1 [12]: http://www.apress.com/9781430219484 [13]: http://www.amazon.com/gp/product/1590592395?ie=UTF8&tag=gigamonkeys-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1590592395 [14]: http://www.powells.com/cgi-bin/biblio?inkey=62-1590592395-3 [15]: http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?isbn=1590592395 [16]: http://www.gigamonkeys.com/practicals-1.0.3.tar.gz [17]: http://www.gigamonkeys.com/practicals-1.0.3.zip [18]: http://www.amazon.com/gp/customer-reviews/write-a-review.html/104-2515398-4782364?%5Fencoding=UTF8&asin=1590592395&store=books [19]: http://www.gigamonkeys.com/introduction-why-lisp.html [20]: http://www.gigamonkeys.com/lather-rinse-repeat-a-tour-of-the-repl.html [21]: http://www.gigamonkeys.com/practical-a-simple-database.html [22]: http://www.gigamonkeys.com/syntax-and-semantics.html [23]: http://www.gigamonkeys.com/functions.html [24]: http://www.gigamonkeys.com/variables.html [25]: http://www.gigamonkeys.com/macros-standard-control-constructs.html [26]: http://www.gigamonkeys.com/macros-defining-your-own.html [27]: http://www.gigamonkeys.com/practical-building-a-unit-test-framework.html [28]: http://www.gigamonkeys.com/numbers-characters-and-strings.html [29]: http://www.gigamonkeys.com/collections.html [30]: http://www.gigamonkeys.com/they-called-it-lisp-for-a-reason-list-processing.html [31]: http://www.gigamonkeys.com/beyond-lists-other-uses-for-cons-cells.html [32]: http://www.gigamonkeys.com/files-and-file-io.html [33]: http://www.gigamonkeys.com/practical-a-portable-pathname-library.html [34]: http://www.gigamonkeys.com/object-reorientation-generic-functions.html [35]: http://www.gigamonkeys.com/object-reorientation-classes.html [36]: http://www.gigamonkeys.com/a-few-format-recipes.html [37]: http://www.gigamonkeys.com/beyond-exception-handling-conditions-and-restarts.html [38]: http://www.gigamonkeys.com/the-special-operators.html [39]: http://www.gigamonkeys.com/programming-in-the-large-packages-and-symbols.html [40]: http://www.gigamonkeys.com/loop-for-black-belts.html [41]: http://www.gigamonkeys.com/practical-a-spam-filter.html [42]: http://www.gigamonkeys.com/practical-parsing-binary-files.html [43]: http://www.gigamonkeys.com/practical-an-id3-parser.html [44]: http://www.gigamonkeys.com/practical-web-programming-with-allegroserve.html [45]: http://www.gigamonkeys.com/practical-an-mp3-database.html [46]: http://www.gigamonkeys.com/practical-a-shoutcast-server.html [47]: http://www.gigamonkeys.com/practical-an-mp3-browser.html [48]: http://www.gigamonkeys.com/practical-an-html-generation-library-the-interpreter.html [49]: http://www.gigamonkeys.com/practical-an-html-generation-library-the-compiler.html [50]: http://www.gigamonkeys.com/conclusion-whats-next.html