views:

4079

answers:

20

Hi, 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!

+34  A: 

Try reading Practical Common Lisp, by Peter Seibel.

Avi
I think I saw that book at my campus... so ill go pick it up right now!
DFectuoso
Don't forget about the REPL! I haven't used what I learned about LISP, but it made me a much better programmer in all other languages.
The Wicked Flea
highly recommend it, this was the book we used for my AI class to teach us LISP for our projects.
contagious
DFectuoso - it's not just a link _about_ the book, it _is_ the book. Start reading the book online
Aaron
Yea i know but i dont like reading in the monitor... anyway i picked this to be the answer coz i started reading the book and it is good(im over half of it and then ill read the little schemer, will edit this when i finish both =0 )
DFectuoso
A: 

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 !

Scott Vercuski
+2  A: 

I enjoyed reading Practical Common LISP and ANSI Common LISP.

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

Ferruccio
"On Lisp" is available freely from the author's website.
Here is the link to download On Lisp for free. [Link](http://www.paulgraham.com/onlisptext.html)
Andrew-Dufresne
A: 

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.

Jon Ericson
+10  A: 

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.

John D. Cook
That seems like a good and fast reading to start! TY
DFectuoso
I would tend to disagree. Yes, diving into it may be the fastest way to learn Lisp, but it's also the most likely to turn people away. PCL has the advantage that experienced programs can start _using_ Lisp from day 1, instead of just being mesmorized
Aaron
+22  A: 

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.

starblue
Paul Graham has a lisp web framework called arc.
graywh
I believe Arc is its own dialect of Lisp, not just a framework. http://www.paulgraham.com/arc.html
spacemanaki
+1  A: 

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

Thanks Im going to pick some books today and start very early tomorrow!
DFectuoso
+6  A: 

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

JesperE
Im allready a good participant of the Project Euler so yes, the time i spend there will be practicing LISP(once i learn how to do a couple of stuff)
DFectuoso
+17  A: 

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/

The lectures are based off their textbook, Structure and Interpretation of Computer Programs.
graywh
I found the DivX videos to be of similar quality to the MPEG videos, even though they're a lot smaller. Save yourself the bandwidth and disk space.
Drew Noakes
+2  A: 

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

Kim
You know, its very sad to see all the webservers and frameworks around lisp that are web oriented... have ZERO design(css or even inline style
DFectuoso
+1  A: 

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

Chance
+2  A: 

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.

Scott Wisniewski
+5  A: 

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.

Charlie Martin
A: 

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.

adolfojp
The problem here is that someone didn't tell you about the tutorial; press Control-H, release them, and press T. That will take you to a tutorial that will give you all you need to get started.Sorry to hear about your bad experience.
JasonFruit
+1 for referencing the old regex joke, but -1 for not being useful on top of it. :-P
khedron
+1  A: 

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.

Andy Dent
A: 

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.

Nope, you only had one problem... learning enough LISP (Emacs) to drive EMACS.

Adam Hawes
If you just read the initial (splash) screen of a vanilla emacs install, you should have enough pointers to get started. There is a nice tutorial for basic interaction, and it shows you how to get complete online help.
Svante
*Whoosh*? I think the sarcasm went over your head
Adam Hawes
+3  A: 

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

I second this, it's a great book, well-written and IMO more inspiring than Practical Common Lisp.
kotlinski
+2  A: 

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.

Steve Rowe
nice link, thanks.
Spidey
+1  A: 

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.

Douglas Brunner
A: 

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.

Abhijith