Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

First I'll tell my story to answer the question, then I'll put resources mentioned in a list at the end.

I've been picking up bits and pieces, and would not call myself anything near an expert. I knew what Lisp was from a Languages class in college, and we actually used lisp to implement a language. Roughly none of it stuck, except for car, cdr, and the idea of using prefix notation and the 'everything is an expression' idea.

Relearning it started with just reading PG's essays and getting curious. Being too lazy to order it online, I looked in every bookstore and library I encountered for ANSI Common Lisp, but never found it. It's rather pricey, too, which is why I was hesitant.

I started with SICP and the video lectures. Something important came up in another part of my life, though, and I basically put Lisp on hold for several months.

When I finally got settled down again, I started playing with with emacs-lisp. I knew emacs would be useful no matter what happened next. I downloaded the manual (which is dense) and scrounged for tips on the internet. The idea was that I'd get familiar thinking in that style and using it for practical things, before moving on to something more serious. Emacs-lisp has some limitations (no closures, for example), so it wasn't too long before I started looking elsewhere.

My next two sources were On Lisp by Paul Graham and Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp by Peter Norvig. Both books include speedy overviews of Lisp, and point you to Guy Steele's Common Lisp The Language (2nd ed) (CTL2), which can be found online, for authoritative reference. Both books are good because they are exciting and fun. Norvig has a fairly gentle introduction, while Graham assumes you're already familiar with many Lisp operators. I don't actually think that's a big problem, and you shouldn't let it scare you away from at least trying to read it. I think it's easier to read the first few chapters of On Lisp first and get excited about looking up the details, than it is to slog through a reference or a mundane introduction beforehand.

I've set aside Lisp again, (though I'm keeping my eye open for opportunities to use it), though I have obtained a copy of ANSI Common Lisp which I also highly recommend. Even if you don't need the introduction, the book includes a large reference section that's a bit more 'user-friendly' than CTL2. The last significant reference I've used is Practical Common Lisp by Peter Siebel, which can be found online.

On Lisp, by Paul Graham http://www.paulgraham.com/onlisp.html

Paradigms of Artificial Intelligence: Case Studies on Common Lisp by Peter Norvig

ANSI Common Lisp by Paul Graham

The GNU Emacs Lisp Reference Manual: http://www.gnu.org/software/emacs/manual/html_mono/elisp.htm...

Practical Common Lisp by Peter Siebel http://www.gigamonkeys.com/book/

Common Lisp the Language: 2nd Edition by Guy Steele http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/a...

Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Jay Sussman with Julie Sussman http://mitpress.mit.edu/sicp/full-text/book/book.html



Everyone beat me to the punch, but my starting list for Common Lisp is:

1. A Gentle Introduction to Symbolic Computation. http://www.cs.cmu.edu/~dst/LispBook/index.html

2. Practical Common Lisp http://www.gigamonkeys.com/book/

3. ANSI Common Lisp http://www.paulgraham.com/acl.html

4. On Lisp http://www.paulgraham.com/onlisptext.html

5. Paradigms of Artifical Intelligence Programming http://norvig.com/paip.html

6. Lisp in Small Pieces http://www.amazon.com/Lisp-Small-Pieces-Christian-Queinnec/d...

SICP is also amazing...and there are at least three sets of videos to go with the book (Abelson/Sussman and HP/MIT, ArsDigita, and UC-Berkeley.)


For Scheme:

1. How to Design Programs [ www.htdp.org ]

(1.5) I've heard good some good things about using Concrete Abstractions or Simply Scheme before SICP...

I know Simply Scheme introduces some non-standard functions, though. I've only glanced at both, so I can't give a full recommendation yet. I just ordered them both in hard copy. These two are probably only useful if you're still new to programming and want to gain more confidence before moving on to SICP.

http://gustavus.edu/+max/concrete-abstractions-pdfs/index.ht...

2. Structure and Interpretation of Computer Programs [ Buy the book and check out all three sets of videos...the instructor's manual is pretty much a waste of $, though, IMHO. ]




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: