I think the best is Touretzky. It's probably the shallowest of the
books, but it is gentle, thorough, and has lots and lots of exercises
with the answers in the back of the book. By the time you finish the
book, you will have written some substantial scripts and have a good
understanding of why things work the way that they do.
Second best IMO is Wilensky. It is deeper than Touretzky, still has
lots of exercises, and the answer manual can be had separately. The
problem with Wilensky is that it's the most out of date of the three.
I especially like his pedagogical methodology.
Third IMO is W&H. This is still a good book, but not particularly for
someone brand new to Lisp because of the depth and bias toward AI. It
certainly is good as a supplement because it contains a summary of
Lisp functions, and the last half of the book is meaty.
Seibel's 'Practical Common Lisp' is an attractive book, and much more
suggestive than these three, but it isn't a text. It was my first Lisp
book, and deserves its place on the shelf, but ultimately isn't
filling. It's like a rich dessert -- well worth eating but somehow in
the end leaving the reader wanting something more substantial. THIS
ISN'T A CRITICISM. Seibel pretty much says the same thing in his
introduction: he deliberately covers a number of substantial projects
as an illustration of the uses of Lisp and wants to leave the reader
wanting more.
Finally, Graham 'ANSI Common Lisp' is NOT a book for the complete
beginner. It might be good for a class, or for a tutorial when working
one on one, but it leaves too much out that needs to be explained to
the beginner.
I'm writing this looking forward to Barski's book, scheduled for
publication September 15, 2010. I've been through 'Casting SPELS' and
liked his approach. I think that it probably deserves mention to new
Lispers (or old ones for that matter) but it's premature at this
point.
I'm also writing this disappointed at the delay of Levine's O'Reilly
project. I think that the O'Reilly books are the top of the line for
tech books, and believe that this particular one would have taken top
honors of the CL books available excepting maybe PIAP.
CC.
Isn't the idea that one reads PCL and then supplements it with the
hyperspec for the actual reference bit?
To be fair, I starting with a mixture of emacs lisp, the hyperspec and
On Lisp, about 3 years ago. I'm not suggesting that this was the easiest
or most efficient approach. Oh, and I read(/deciphered) quite a few
hunks of free libraries (at least drakma and cl-ppcre if I remember
correctly). Oh, and you need to have something(s) you're trying to
write, otherwise you'll never do anything.
But, yeah, I would suggest that people trying to learn any new
programming language should give up trying to find "the perfect
introduction to <language>" and instead spend their time learning the
darn thing. I'm pretty certain that a book can only be _so_ good:
there's always some work required on the student's part.
Er, this was supposed to be a reply to your post, but maybe I can go for
slightly-related-rant instead. Incidentally, my comments apply to
learning other subjects (especially maths) too. Get two or more texts in
electronic or book or whatever form and then read bits of all of
them. You'll never read any of them "properly" cover to cover, so don't
expect to. Then _do_ something. By the time you've satisfied yourself
that you _did_ it, you'll understand the theory you needed.
Rupert
Agreed. Practical and tho not a textbook, technically solid. We here on
c.l.lisp saw Peter digging deep into the language to get his book right,
and it shows in the final product.
Otherwise, I think Graham nailed it with ANSI CL, and Touretsky always
gets favorable reviews here.
kt
--
http://www.stuckonalgebra.com
"The best Algebra tutorial program I have seen... in a class by itself."
Macworld
It's an excellent book.
--
My website: http://p-cos.net
Common Lisp Document Repository: http://cdr.eurolisp.org
Closer to MOP & ContextL: http://common-lisp.net/project/closer/
> On 31/07/2010 20:09, Captain Obvious wrote:
>> What's about PAIP?
>
> It's an excellent book.
Indeed it is, but it does a lot more than discuss CL per se: it gives
an intro to AI. While that is interesting in its own right, it might
be a distraction for some people who just want to learn CL and don't
plan to use it for AI or related fields. I liked PAIP very much, but
I would recommend PCL as the first book, then ANSI CL and On Lisp
after that.
Tamas
I indeed agree. For about a month ago, I finished reading the PAIP
book, and finished running (much of) the LISP code, with the Allegro
Common LISP (the Express edition), and I think that the PAIP book is
definitely one of the best scientific books I ever have read.
regards, Antti J Ylikoski
Helsinki, Finland, the E.U.
??>> It's an excellent book.
I concur.
TKP> Indeed it is, but it does a lot more than discuss CL per se: it gives
TKP> an intro to AI. While that is interesting in its own right, it might
TKP> be a distraction for some people who just want to learn CL and don't
One can read only the first part...
TKP> plan to use it for AI or related fields.
A lot of that "A.I." stuff is just a bunch of interesting general purpose
algorithms, perhaps slighly reformulated.
It absolutely won't hurt to learn them and I think they are not too A.I.
specific -- that is, a lot of it can be adapted to real-worlds problems.
TKP> I liked PAIP very much, but I would recommend PCL as the first book,
TKP> then ANSI CL and On Lisp after that.
I find Graham's programming style kind of too unusual to be recommeneded as
a learning material.
OTOH Norvig's style programming style is just excellent, perhaps, the best
I've seen.
> I'm also writing this disappointed at the delay of Levine's O'Reilly
> project.
FYI, Nick had to drop the project due to poor health. A few chapters
are available online.
http://lisp-book.org/contents/
- Daniel
> FYI, Nick had to drop the project due to poor health. A few chapters
> are available online.http://lisp-book.org/contents/
I have those eight chapters, and have read two. Over the years I've
purchased a large number of O'Reilly books. Many haven't really been
helpful, but the ones that are helpful are really good. I have several
that I've had to re-buy over the years because of wear and tear from
(ab)normal usage.
My general impression is that the O'Reilly books are by professionals
for professionals, with minimal hand holding. The only CL book that I
have seen that approaches this is Keene's book on CLOS. I'm sorry for
Levine's health problems, and I'm sorry that the project is on hold
(but he has indicated that the project isn't totally dead -- O'Reilly
still will publish the book if someone will take it over.) I thought
that sponsorship by O'Reilly was pretty much a guarantee of high
quality.
I would like to make this observation on Lisp and the popularity of
languages.
Developers, managers, and large companies all say that they want to
use the 'best tool' for the job. In my job, I use a lot of Perl -- I'm
not a programmer or a developer but a database guy and Perl is ideally
suited for the data munging tasks I do every day. I have contacts with
both IT and non-IT managers at large corporations in my area, and they
use a lot of C# and Java because those technologies make managing
large projects and large staffs easy. I have a friend that owns a
company that writes embedded systems using C, and he will only use C
because (as he says) he has to stuff complete applications into only a
few K of memory and C is the only high level language that will do
this.
The reason that CL isn't wide spread is because it is perceived as not
being the 'best tool' for jobs. This perception has a basis in
reality, regardless of the merits of CL as a language. Unfortunately,
being the 'best tool' requires things other than pure programming
power.
All things being equal, the most powerful language should rise to the
top, but all things aren't equal. Ultimately, languages live in an
environment where survival depends on many different qualities. The
apex predators on the North American continent, like the saber tooth
tiger and the short faced bear, didn't survive - not because they
weren't the top predators, but because the environment favored things
other than sheer killing power.
If CL is to survive and prosper, it needs to evolve to the point that
it can prosper in its environment, i.e., earn the perception that it
is the 'best tool' for some kinds of jobs. If it doesn't do this,
other languages will take its place, perhaps F#, or Clojure, or Go, or
maybe even Perl (which already has many Lisp-like features.)
CC.
> ??>>> What's about PAIP?
>
> ??>> It's an excellent book.
>
> I concur.
>
> TKP> Indeed it is, but it does a lot more than discuss CL per se: it gives
> TKP> an intro to AI. While that is interesting in its own right, it might
> TKP> be a distraction for some people who just want to learn CL and don't
>
> One can read only the first part...
I think this depends a bit on who the student is. I've tried that with
some of our graduate students and the lisp introduction was a bit too
condensed for them. (That was a shame, since I liked the quick,
no-nonsense approach.) I suppose that without much experience outside
the C/Java world, one might need a bit more explanation of the lisp
model of programming than one would get from PAIP.
--
Thomas A. Russ, USC/Information Sciences Institute