学习 LISP 最好的方法是什么? [打烊]

I have been programming in Python, PHP, Java and C for a couple or years now, and I just finished reading Hackers and Painters, so I would love to give LISP a try!

I understand its totally diferent from what i know and that it won't be easy. Also I think (please correct me if I'm wrong) there's way less community and development around LISP. So my question is: what's the best way to learn LISP?

I wouldn't mind buying books or investing some time. I just don't want it to be wasted.

The "final" idea would be to use LISP for web development, and I know that's not so common so... I know it's good to plan my learning before picking the first book or tutorial and spending lots of time on something that may not be the best way!

Thank you all for your answers!

edit: I read Practical Common Lisp and was: ... long, hard, interesting and definitely got me rolling in Lisp, after that i read the little schemer, and it was short, fun and very very good for my overall programming. So my recommendation would be to read first the little schemer, then (its a couple of hours and its worth it) if you decide lisp(or scheme or whatever dialect) is not what you where looking for, you will still have a very fun new way of thinking about recursion!

转载于:https://stackoverflow.com/questions/398579/whats-the-best-way-to-learn-lisp

Try reading Practical Common Lisp, by Peter Seibel.

Sort of a difficult question to answer ... I think it all depends on your learning style.

I learned LISP in my A.I. and Expert Systems classes in college, but that's how I learn ... I'm not a great book learner, I prefer to have someone explain it to me in a class setting.

LISP is definitely a unique language and it requires a new train of thought if you're used to conventional C, Java, PHP programming.

Best of luck to you !

I enjoyed reading Practical Common LISP and ANSI Common LISP.

On LISP looks interesting, but at $190 seems a little expensive for a book.

I don't know that there's anything special about Lisp that makes it different from learning any other language. You just need to start using it and trying out its features.

One option might be to try a simple project.

Another option, that's specific for Lisp, would be to write an Emacs extension that assists you in your regular work.

You might want to start with The Little Schemer as a warm-up. It's not a practical book about writing production Lisp programs, but it's a great book for learning how to think in Lisp.

My personal favorite is Abelson & Sussman Structure and Interpretation of Computer Programs. It uses Scheme, which is a nice and clean dialect of Lisp.

If you like a more practical approach maybe you should pick some Lisp framework for web design (I have no idea if such a beast exists) and jump right in.

I found reading the book SICP really helped me learn. I used Steel Bank Common Lisp (SBCL) and had good success with it.

Good luck

I'd recommend Project Euler as an excellent source of small bite-sized problems you can use to teach yourself any new programming language.

MIT has made available an entire LISP course in DIVX and MPEG format. I highly recommend it.

http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

For web development you might want to have a look at hunchentoot, a web server written in common lisp.

Grab a bucket of ('s and )'s and go to town..

Ansi Common Lisp by Paul Graham is a good book.

I think it might be out of print, so your best bet to get it via Amazon. I got the book for a "Natural Language Processing" class I took my sophomore year in college. We had to write the programing projects in LISP, and so I needed to learn Lisp quickly.

The book helped me quite a bit.

There are several options here. First of all, Scheme and Common Lisp are fairly different in rather deep ways (like scoping); you should pick one to start with and stick with it for a while. I'm a Common Lisp fan, but that may be one of those vi-vs-EMACS religious questions.

For Scheme, go for Kent Dybvig's Scheme Programming Language, followed by SICP.

For Common Lisp, as well as Practical Common Lisp, I'd recommend David Lamkins's Successful Lisp. Successful Lisp is also available online for free.

After than, look at Lisp in Small Pieces by Queinnec, and Norvig's Lisp in AI book.

Marty Hall has a nice list at Johns Hopkins.

Updated: I don't mean stick to it forever, just that trying to learn both at once would be confusing.

Once I had a problem. I didn't know lisp. So I decided to download LISP in a box.

Then I found myself with an Emacs install without any help or documentation.

Then I had two problems.

I found working through the exercises in "The Little Schemer" really helped hone the recursive, pattern-matching side of my thinking and made working in XSLT considerably easier.

For serious learners, I'd recommend PAIP from Norvig. It is an excellent resource to learn both Lisp and AI.

Berkeley offers CS61a in podcast format. This is an intro to CS class based around SICP. It's a more modern version than the 1982 videos MIT has available.

I'm working my way through Lisp right now and have come across "the book" to learn Lisp. It was suggested by Rainer Joswig

The book is called Common Lisp: A Gentle Introduction to Symbolic Computation and can be downloaded as a PDF. The author begins with a UML like approach to Lisp in the first chapter and gradually introduces more and more Lisp syntax.

I've also looked at practical lisp and I think that the author glosses over a lot of required information, even for a seasoned programmer. This book doesn't seem to do that (I'm not completely finished, but have found it useful enough to suggest).

one more thing, you'll need an environment to work in. I've found Lisp in a Box to work well. It runs on Windows and Linux and uses eMacs.

Read these books in order: Gentle Introduction to Symbolic Computation, ANSI Common Lisp by Paul Graham and then move onto Practical Common Lisp. Or skip ACL and use it as a reference while working your way through PCL.

There is now a book out called 'Land of LISP' that teaches LISP programming through writing 80's style text games. I'm reading it now, and it's very well written and doesn't take itself too seriously, which I like.

I recommend Gentle Introduction to Symbolic Computation or Practical Common Lisp first, based on your programming experiences. For practicing, I use Allegro CL 8.2 Free Express Edition in Windows. It turns practicing into a lot of fun.

Pick up The Land of Lisp by Conrad Barski. It is a fun filled introduction to Lisp programming using cartoons and games.

I've got attracted to LISP by its JVM dialect - Clojure. Clojure is sort of great LISP, since

  • it has "simplified syntax", that is less parathensis are required, there is cleverly design set of collections available
  • it is JVM based, so there is stable, performant runtime underneath, in addition whole Java ecosystem (libraries, e.g. database drivers, build tools, IDEs) is within our reach
  • Noir is a good web framework, apps can be deployed on Java web and applications servers

In other words, Clojure can be used in production right here, right now.

When it comes to resources, there are at least 4 books and planty online resources: