Fog Creek Software
Discussion Board




learning lisp

Thinking of trying to learn lisp.  Not because there is a particular market for it or anything, but for the intellectual challenge.  I learned some scheme ages ago as part of my computer science curriculum, but have not touched for almost 15 years. 

Can anyone recommend any tutorials or books that take one on a path that leads to naturally "thinking" in lisp?

AMS
Tuesday, April 06, 2004

MSDN has a complete documentation on modern languages that has borrowed some of the good stuff you'll find in Lisp.

Li-fan Chen
Tuesday, April 06, 2004

How much Lisp do you want to know?  Paul Graham's "On Lisp" might be suitable.  If you want a good review of Scheme, try SICP (http://mitpress.mit.edu/sicp/).

Kalani
Tuesday, April 06, 2004

My favorite Common Lisp book is this:

http://www-2.cs.cmu.edu/afs/cs.cmu.edu/user/dst/www/LispBook/

Andrew Burton
Tuesday, April 06, 2004

Read Paul Graham http://www.paulgraham.com There's a free PDF book on learning lisp in there somehere.

Matthew Lock
Tuesday, April 06, 2004

Abelson & Sussman's "Structure and Interpretation of Computer Programs" is my favorite LISP book. The entire text is on line at http://mitpress.mit.edu/sicp/

Dan Maas
Tuesday, April 06, 2004

They have a full course using Scheme with video lectures on MIT's open ware site. Unfortunately, the MIT web server is down, so I can't post the link.

Floridian
Tuesday, April 06, 2004

SICP is MIT's intro to compsci, and I personally see it as using Scheme to demonstrate general programming concepts rather than actual programming.  In particular, their Scheme doesn't have macros or i/o.  Still, here are two different sets of gratis video lectures you might enjoy:
http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/
http://www.aduni.org/courses/sicp/index.php?view=cw

Peter Seibel has a good work-in-progress that he solicits feedback for; builds stuff like unit-test frameworks and personal databases:
http://www.gigamonkeys.com/book/

Norvig's PAIP contains good advice and is pretty hardcore.  Explains stuff like how to make a simple command that searches out a function's definition and replaces it with a caching version of itself.  In 15 noncomment lines.
http://www.norvig.com/paip.html  [not gratis]

CLtL2 is a lucid reference.  Available both gratis online and dead-tree.
http://www.cliki.net/CLtL2

You might find a guide suited to you here:
http://www.cliki.net/Lisp%20books
http://www.cliki.net/Document
http://www.cliki.net/Online%20Tutorial

Tayssir John Gabbour
Tuesday, April 06, 2004

The forum bit the Norvig PAIP link.  Let's try it again:
http://www.norvig.com/paip.html

Tayssir John Gabbour
Tuesday, April 06, 2004

If Scheme is an acceptable variant, then the people at plt-scheme have put a lot of effort into making the language accessible:

http://www.teach-scheme.org/

If your willing to cast your net even further then OCaml is a powerful functional language that compiles as fast as C++:

http://www.ocaml.org/

The book 'Developing Applications with Objective Caml' not only teaches the language but also a lot of techniques that can be used elsewhere:

http://caml.inria.fr/oreilly-book/html/index.html

Ged Byrne
Wednesday, April 07, 2004

Thinking deeper, I like Robert Floyd's "Paradigms of Programming" Turing Award speech; in a couple sentences he described his surprise encounter with something at the heart of lisp, in that lisp programs are expressed in easily manipulable data structures.  Since people like to type programs as text, we write textual representations; but that is just an interface.  The parens don't really exist.

_Notes from the Metalevel_ should be entertaining if you are interested in composing music.  It uses lisp to represent musical abstractions.  Since music is a fine art, he's pretty unreserved about talking about lisp's aesthetics.  It was recently taken offline when it was published and is not available on Amazon, but if you visit a lispnik meeting, it should not be hard to obtain a copy.

Tayssir John Gabbour
Wednesday, April 07, 2004

There is two books I remember being realy good. Unfortunately I can not remember the title/author of the first one. Maybe someone with a better memory: It was a book that on the cover had a photo of something red metal (Golden Gate bridge I think, but I'm not 100% sure).
The second book is "Object-Oriented Programming in Common Lisp: A Programmer's Guide to CLOS"
by Sonya E. Keene.

Just me (Sir to you)
Wednesday, April 07, 2004

I second the recommendation of SICP

Harvey Pengwyn
Wednesday, April 07, 2004

Dude,

I'm a working Common Lisp programmer.  I have just GOT to be the stupidest Common Lisp programmer alive, so let me tell you how I learnt Common Lisp.

1.  Buy ANSI Common Lisp by Paul Graham.

2.  Read it.  But if you feel your balls retract and your head starts spinning, just stop.  Read David Tourestky's (sp?) Gentle Introduction to Symbolic  Computation with Common Lisp. (or something like that - it's free and on the web). Go back to Paul Graham.  It will be MUCH easier.

3. Next read Object oriented programming with common lisp by Sonya Keene.  This is the best tutorial on object oriented programming ever.

4. Next read Paradigms of Artificial Intelligence Programming with Common Lisp for experience on writing real world common lisp.

Some tips:

When learning CL use a trial edition of a commercial environmentment:  www.franz.com www.lispworks.com

Ignore ANYONE that recommends learning scheme or reading books teach scheme (i.e. structured interpretation of computer programs or simply scheme blah blah total waste of time (okay except for How to Design Programs - that wasn't half bad)).

Regs,

Lisp Programmer
Thursday, April 08, 2004

If I took your path, Lisp Programmer, I probably would've learned lisp much faster.  SICP in some ways was a barrier for learning real lisp.  Its Scheme is definitely not a lisp, despite what it may claim.  I think it's a great book/course on its own, but it ain't lisp.

Tayssir John Gabbour
Thursday, April 08, 2004

*  Recent Topics

*  Fog Creek Home