ANSI Common Lisp by Paul Graham


ANSI Common Lisp
Title : ANSI Common Lisp
Author :
Rating :
ISBN : 0133708756
ISBN-10 : 9780133708752
Language : English
Format Type : Paperback
Number of Pages : 444
Publication : First published January 1, 1996

ANSI Common Lisp combines an introduction to Lisp programming, and a convenient, up-to-date reference manual for ANSI Common Lisp. Beginners will find that its careful explanations and interesting examples make Lisp programming easy to learn. Professional programmers will appreciate its thorough, practical approach.

FEATURES:

• An up-to-date reference manual for ANSI Common Lisp.

• An in-depth look at object-oriented programming. Explains the Common Lisp Object System (CLOS), and also shows how to write your own object-oriented language.

• Over 20 substantial examples, including programs for ray-tracing, text generation, pattern-matching, logical inference, generating HTML, sorting and searching, file I/O, compression, and date arithmetic.

• Special attention to critical concepts, including prefix syntax, code vs. data, recursion, functional programming, types, implicit pointers, dynamic allocation, closures, macros, class precedence, and generic functions vs. message-passing.

• A complete guide to optimization.

• The clearest and most thorough explanation of macros in any introductory book.

• Examples that illustrate Lisp programming styles, including rapid prototyping, bottom-up programming, object-oriented programming, and embedded languages.

• An appendix on debugging, with examples of common errors.


ANSI Common Lisp Reviews


  • Neal Aggarwal

    This book is the intro to the language that I followed up with On LISP. Taken together the books are a treasure trove to me. I keep going through them again and again. My most recent reading at end 2013 brought up new insights AGAIN!

  • William Roe

    I don't think I've read any book that's advanced my programming knowledge more than this little book.

  • Phil Eaton

    Paul Graham and his editor(s) are excellent. His prose is light and easy to follow. The only awkward component of the book's organization is that he tends to use a concept one section before explicitly introducing and defining that concept. I'm not sure yet if this is a good or bad thing.

    As a learning resource

    Among books recommended to potential Lispers, ANSI Common Lisp is typically written off. Graham's style of Lisp is called "non-idiomatic". That's fair, both ANSI Common Lisp and On Lisp feature aspects of Common Lisp that lend themselves to functional programming. And as those of you who've read Practical Common Lisp know, Common Lisp (unlike Scheme) was not designed to be a functional programming language. Ultimately ANSI Common Lisp covers the same topics Practical Common Lisp does, if not more. But ANSI Common Lisp is better written, in less space, and with shorter examples.

    I'm impressed at Graham's ability to summarize. There is a graphic illustrating symbols as a structure composed of a name, a value, a function, a package, and a property list. Although other resources (books and otherwise) mention symbols as having one or more of these components, his graphic was the first representation that clicked for me. He also provides clarity about packages being namespaces for names (symbols) not objects or functions.

    And toward the end of the book, there is a discussion on the "instance" abstraction (relative to the class definitions themselves) being more powerful than plain "objects" that carry around methods themselves. This has been the single most useful discussion on the implementation of object-oriented constructs I've read yet.

    Digression on Practical Common Lisp

    Practical Common Lisp is often called the best introduction to Common Lisp. After reading both, I'd give Practical Common Lisp second place or call it a tie. The issue with Practical Common Lisp is that it takes too long to get anywhere and the practical chapters themselves are just as much a slog. And for as big as it is, Practical Common Lisp still doesn't include some major (potentially confusing) aspects of "modern" Common Lisp like ASDF, Quicklisp, production deployment strategies, etc.

    Even after having read Practical Common Lisp I wasn't really clear how to pull together all the libraries I needed to get anything real done (e.g. scripting against an HTTP API or interacting with a SQL database). This is not to say that Practical Common Lisp is a bad book, it is a good book. But I definitely don't recommend reading it without also reading ANSI Common Lisp. And regardless, there are still a few of those modern concepts neither book covers.

  • Didik

    I learn a programming language accidentally
    One day I was given a gift of a laptop from my brother
    and I don't know what would I do with it
    that in the end my friend give me a copy ansi common lisp
    after so long I read with a capital of the brain below the average with my english is very bad, I am trying to understand it, though with much difficulty everywhere
    but eventually, I was able to give a command in the terminal comand and REPL run in accordance with my wishes and that day I felt happy once.
    although my experience was very funny and silly
    please be understood me, I come from third world countries and very poor.
    My purpose, learn common lisp is to help relieve and create a sense of ease among people with what I earn in the future.
    because, in the world there are still many people who have problems with computing.

  • Antonio Ognio

    Mandatory book on Common Lisp. Textbook for the "Programación No-Procedural" course at Universidad Peruana de Ciencias Aplicadas.

  • Nick Black

    a classic--my first book on functional programming, the textbook for GT's CS2360.