Common Lisp Recipes is a collection of solutions to problems and answers to questions you are likely to encounter when writing real-world applications in Common Lisp. Written by an author who has used Common Lisp in many successful commercial projects over more than a decade, this book covers areas as diverse as web programming, databases, graphical user interfaces, integration with other programming languages, multi-threading, and mobile devices as well as debugging techniques and optimization, to name just a few. It is also the first Common Lisp book to tackle such advanced topics as environment access, logical pathnames, Gray streams, delivery of executables, pretty printing, setf expansions, or changing the syntax of Common Lisp. The book is organized around specific problems or questions each followed by ready-to-use example solutions and clear explanations of the concepts involved, plus pointers to alternatives and more information. Each recipe can be read independently of the others and thus the book will earn a special place on your bookshelf as a reference work you always want to have within reach. Common Lisp Recipes is aimed at programmers who are already familiar with Common Lisp to a certain extent but do not yet have the experience you typically only get from years of hacking in a specific computer language. It is written in a style that mixes hands-on no-frills pragmatism with precise information and prudent mentorship. If you feel attracted to Common Lisp''s mix of breathtaking features and down-to-earth utilitarianism, you''ll also like this book.
What you''ll learn Working with standard objects like characters, strings, numbers, symbols, packages, conses, lists, arrays, hash tables, and sets. Using Common Lisp''s object system CLOS - including topics like derived types, non-standard method combinations, changing classes on the fly, or the metaobject protocol. Employing the Lisp reader and the Lisp printer and modifying their behavior through readtables, reader macros, pretty print dispatch tables, etc. Working with streams, files, directories, the operating system, and external programs using standard functionality as well as additions like Gray streams or portable open source code. Writing robust code using Common Lisp''s condition system in combination with assertions, handlers, and restarts. Understanding advanced topics like non-standard iteration techniques, environment objects, logical pathnames, setf expanders, or object serialization. Calling other languages like C, C++, or Java from Common Lisp, embedding Common Lisp into such languages, and delivering Common Lisp code as a binary or as a shared library. Writing portable and safe multi-threaded code.
Optimizing your code using techniques like profilers, the disassembler, compiler hints, declarations, stack allocation, memoization, inlining, special data structures, or compiler macros. Using open source libraries for web programming, data persistence, dates and times, parsing XML or JSON, and regular expressions as well as organizing your own code into a library. Developing and debugging using steppers, inspectors, tracers, advices, and browsers. Generating graphical user interfaces for desktop operating systems or mobile devices. Who this book is for This book is for experienced computer programmers who have at least some experience with Common Lisp. Table of Contents 1. Symbols and Packages 2. Conses, Lists, and Trees 3.
Strings and Characters 4. Numbers and Math 5. Arrays and Vectors 6. Hash Tables, Maps, and Sets 7. Sequences and Iteration 8. The Lisp Reader 9. Printing 10. Evaluation, Compilation, and Control Flow 11.
Concurrency 12. Error Handling and Avoidance 13. Objects, Classes, Types 14. I/O: Streams and Files 15. Pathnames, Files, Directories 16. Developing and Debugging 17. Optimization 18. Libraries 19.
Interfacing with Other Languages 20. Graphical User Interfaces 21. Persistence 22. The World Outside.