- Full Description
Find solutions to problems and answers to questions you are likely to encounter when writing real-world applications in Common Lisp. 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. Written by an author who has used Common Lisp in many successful commercial projects over more than a decade, Common Lisp Recipes 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.
Note: the author encourages readers to submit errata to http://weitz.de/cl-recipes/.
What youll 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
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
10. Evaluation, Compilation, and Control Flow
12. Error Handling and Avoidance
13. Objects, Classes, Types
14. I/O: Streams and Files
15. Pathnames, Files, Directories
16. Developing and Debugging
19. Interfacing with Other Languages
20. Graphical User Interfaces
22. The World Outside
- Source Code/Downloads
If you think that you've found an error in this book, please let us know by emailing to firstname.lastname@example.org . You will find any confirmed erratum below, so you can check if your concern has already been addressed. No errata are currently published