This highly accessible introduction to Lisp is suitable both for novices approaching their first programming language and experienced programmers interested in exploring a key tool for artificial intelligence research. The text offers clear, reader-friendly explanations of such essential concepts as cons cell structures, evaluation rules, programs as data, and recursive and applicative programming styles. The treatment incorporates several innovative instructional devices, such as the use of function boxes in the first two chapters to visually distinguish functions from data, use of evaltrace notation in later chapters to illustrate the operation of evaluation rules, and "Dragon stories" to explain recursion. The book contains nearly 400 diagrams and illustrations, and 77 pages of answers to exercises. Advanced topics and "toolkit" sections, and a variety of complete programs, extend readers' programming power.
DAvid S. Touretzky's introduction to computer programming through the Common Lisp programming language was first published in 1990. However, because Touretzky's teaching approach remains perennially attractive, and the Common Lisp language has not significantly changed in the decades since, Dover reprinted the book in 2013. This book was generally aimed at university undergraduates who have no particular zeal for computer science or mathematics, but just want to learn what computer programming involves. It was assumed that university students would be given access to a lab computer running Common Lisp, but this book is accessible to any solitary reader who can manage to install a Lisp environment on his/her own computer.
Because the book was initially conceived as a computer science intro on the basis of Lisp, Touretzky aims to teach not just the Common Lisp language itself, but also all the basic concepts of writing code in any language: variables, memory management, functional programming and recursive programming, etc. However, for this reader who has a solid background in computer programming and just wanted to learn Common Lisp specifically, the layout and organization of the book proved to be very clear and it was easy to skim the sections for novice programmers in order to just extract the documentation of Common Lisp itself.
Touretzky's survey of the Common Lisp language mainly involves the primitive functions of the language. That is, you learn some basic commands to get the computer to output text or do some mathematical operations to numbers so that you get a general idea of computer programming. However, the book stops before it could teach you the higher-level functions that one would actually use in real-world Common Lisp programming for e.g. working with graphics, multimedia, databases, networks, etc. That actually isn't too much of a flaw: Common Lisp library support has come a long way since 1990, and anything Touretzy might have written on the subject would now be extremely outdated. So, while the book does stop at a pretty simple level and that might disappoint some readers, at least one will be spurred to get the rest of the Common Lisp story from a more recent resource like Weitz's Common Lisp Recipes.
In fact, because Touretzky's survey of Common Lisp limits itself to very basic functions that are found in other forms of Lisp, a reader can easily use this book as a very basic introduction to Emacs Lisp (if you find the official introduction to Emacs Lisp by Robert J. Chassell starts off too complicated) or even, with some caveats, Scheme.
An awesome intro for beginners. It really is gentle, and it really is about symbolic computation.
If I were going to teach a class on Lisp for beginners, this would be the textbook. It might even be the right book for a first class on programming in general.
Note: The first edition has the prettier cover, but the second edition is much more current and includes info about Common Lisp. If you use the first edition you're going to get some confusing terminology regarding scope and other things. Get the second edition.
An Ok-Ok book - it details the syntax of lisp decently enough and is too basic for people with programming background (esp recursive and applicative). The main part of lisp - Macros don't have enough working exercises to get a good handle on. The few problems in lips macros is barely sufficient - given that it is designed to be a "textbook". You are new to programming, this is a good place to start. But, if you want to get good with Macros or lisp, you wan to find a better book.
I love that this book was published in 1984 -- 40 years ago!!! -- and still works! Common Lisp is an amazing language in that way. I wanted a "lighter" intro to lisp than Grahams ANSI Common Lisp, mostly because I was teaching myself in spare moments between work and parenting, and unable to really focus hard on it regularly. This book answered wonderfully well for that.
This book was a fun, relatively quick read. It has great exercises in every chapter, including answers in the back of the book (I wish that Paul Graham's ANSI Common Lisp had the answers in it). I particularly appreciated exercises where it specified "you MUST use loops NOT recursion" to force usage of different aspects of the language.
If you're an experienced programmer, the first 9 chapters can be whipped through pretty quickly.
Chapters 10+ are where things get Lispy. Assignments in Lisp are surprisingly powerful and different (chapter 10). Iterations as well. I had used (do) before, but never really appreciated it until doing all the exercises in this book.
Chapter 14, Macros, took me a while to work through, and rework through. I get the basics, but this is the area where practice is going to be required to really "get it". I have Graham's "On Lisp" which focuses heavily on Macros, and look forward to mastering it.
This was my first serious foray into reading a Lisp book—and finishing it. I only tried “Write Your Own Lisp” a few years earlier but didn't finish it (oh, and SICP, but that's in progress). Having tried a bit of Clojure and Scheme I was somewhat familiar with how you approach problems in Lisp, so my mind was prepared :)
The book itself is perfect for a beginner because every minor detail is explained several times from different angles, and then you get to practice some problems that (thankfully) have answers at the end of the book. I didn't find it tedious and could follow all the code. Maybe another re-read while actually doing all the exercises?
As for Common Lisp itself, I find it intriguing and even though I have good reasons, I kind of regret not trying it earlier, it does force you to think in a different way.
Chapter 8 on recursion is very instructive and recommendable, imo one of the best resources to learn the basics of recursion.
I read Touretzky first and proceeded with Graham's Ansci Common Lisp and especially the recursion stuff from Touretzky is a good preparation for any further Lisp adventures!
Excellent introductory book to learn Common Lisp. It starts light, with a pace that is comfortable to understand. The exercises are at a good level of difficulty. The book doesn't cover Packages and Common Lisp Object System (CLOS) topics, making it necessary to search other books to study these. Overall, I strongly recommend the book.
So, I've finished reading this book. I found it enjoyable, but it didn't show the reason why Lisp users say that the language is so much superior to many other languages... (I mean no C / Java / Pascal programmer says that his language is the best, but for Lisp programmers it's very common). To me Lisp seems just like a weird mix of Pascal, Javascript, Dash, Java and Oz, nothing really particular...
"A Gentle Introduction" is a pretty solid introductory book into the CL. Makes the reader feel the language and that particular effect is very important for the "first books". Most of the "keyboard exercises" (each one is a kind of mini-project) are fun and even pretty challenging even for the non-beginners as I am. This book isn't the first Lisp book I have read, but definitely one of the best ones!
This book is a must have for anyone that is looking to or is practicing programming for artificial intelligence based applications... It is extremely readable and understandable for anyone that is college bound and already is familiar with at least one modern object oriented programming language.