Lisp Outside the Box / Contents
This is very much a draft outline. Both overall breakdown and specific chapter titles are likely to change over the coming months.
Early chapters introduce Common Lisp and are implementation neutral. The rest of the book revolves around specific proprietary and non-proprietary libraries; each part focuses more or less on a different lisp implementation: Allegro, Clozure, SBCL, LispWorks, Clojure.
I started writing in the middle (because the needs of later chapters will drive the contents of earlier ones). As each chapter becomes ready for public consumption I’ll link to it from this page and drop a note to my blog. At some point I intend to come up with solutions to exercises and they’ll be linked from here too.
Something you hoped to see not on the list? I can but apologise.
Nick Levine
Introduction
PART ONE “Open the box”
Getting started
Basics
Controls
Standard tools
I/O
PART TWO “Inventory of the Box”
Portable State
CLOS
Types
Hmm, maybe it’s time we mentioned Lists
Programs as data
What Makes Great Lisp
What Makes Lisp Great
PART THREE “Libraries that come with the box”
Most lisp implementations are accompanied by a rich set of supplementary libraries. Although the aim of this book is to look “outside the box”, it’s worth noting that the box is typically larger than you’d think; so let’s use a few of the libraries which accompany one of the lisp distributions as our starting point.
We’ll start our tour of lisp libraries with a look at a persistent memory system called AllegroCache. This library is proprietary and it ships with Allegro Common Lisp (ACL).
We’ll wander through the AllegroCache documentation looking out for salient features. These will lead us to a couple of ubiquitous extensions to Common Lisp (memory management, and multithreading) and we’ll digress to examime them in some detail.
The Express Edition of ACL is free for personal use and will be suitable for running the examples in the next two chapters. It has a number of built-in restrictions; the one that’s most likely to bite is its limit of three AllegroCache connections and I’ll remind you of that later. Chapters 15 and 16 are more general and with little modification the examples can be run on most implementations.
Persistence with AllegroCache
Further AllegroCache
Concurrency
Memory
PART FOUR “Libraries that didn’t come in the box”
Image processing example
SLIME
System definition
Optimization
PART FIVE “Server boxes”
Hunchentoot
CL-PPCRE
cl-typesetting: PDF generator
Macro applications
PART SIX “Gift-wrapping the box”
A desktop application
GUI development environments
Internationalization
World building
PART SEVEN “Talking to other boxes”
Talking to C
RabbitMQ
Clojure
APPENDICES
Where to obtain everything mentioned in the book
The LLGPL
Copyright © Nick Levine 2009. This document is provided “as is”, without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this document. You may download a copy of this document for personal viewing and printing. You may not otherwise duplicate, reproduce or redistribute this document in any form without the express permission of the copyright holder.