Fog Creek Software
Discussion Board




Getting started with Lisp

Since this board has recently turned into the "All Lisp, All the Time" channel, this seems like a good place to ask...  <g>

I've been reading a number of academic papers (on parsing/natural language processing) that use Lisp code for the examples.  I'm fluent with VB and C#, and comfortable enough with Java and Pascal, but Lisp is completely unintelligible to me.

Can anyone recommend the best resources for getting a basic introduction to Lisp?  (Yes, I've Googled it, but I'm hoping that some of the Lisp aficionados can help to separate the wheat from the chaff.)

Also, is there a particular dialect that would be preferable?  (Keeping in mind that the papers appear to be in Common Lisp.)  For example, is Scheme a superset of Common Lisp, so that knowledge of Scheme would translate backwards to Common Lisp, or is it quite different?

Finally, is there a "best of breed," and preferably free, Lisp IDE/compiler for Windows?  Ideally, I'd like a nice GUI environment, like Visual Studio.

Many thanks!

Robert Jacobson
Friday, December 12, 2003

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

Personally I think that the best way to go is to write your own interpreter and build up a language to suit your class of problems.

Also, you can download clisp from the GNU website.  It doesn't come with an IDE or anything, but there's always emacs.  Commercial Lisp environments are typically much more expensive.  Scheme isn't the same as CL, though they have a lot in common (CL is the C++ of the Lisp world).

K
Friday, December 12, 2003

http://www.cliki.net/

http://www.paulgraham.com/

http://alu.cliki.net/

Programmus Interruptus
Friday, December 12, 2003

Speaking as one with limited lisp experience:

Common Lisp (CL) seems to be the main stream version of Lisp.  I am not familiar with Scheme.  It seems to be a branch with different features, not a superset.  The Common Lisp Object System (CLOS) should be a part of your Lisp environment.

There are a few commercial vendors of CL.  They typically have free demo versions.  Check out http://www.franz.com  where you can download a demo for Windows, Linux or BSD.  Good for 60 days, renewable.  There is at least one other, if I remember it I'll post.

As for books, Paul Graham's "ANSI Common Lisp" is a good basic book for Lisp.  http://www.paulgraham.com/acl.html  It is the sort of book that you read if you are familiar with programming and want to learn a new language.

mackinac
Friday, December 12, 2003

Let's try those links again.  Sometimes a non-printing character gets appended to the end

http://www.franz.com

http://www.paulgraham.com/acl.html

mackinac
Friday, December 12, 2003

Here's a couple books that I thought were pretty good:

Essential Lisp, John Anderson
http://www.amazon.com/exec/obidos/asin/0201111489

Lisp, Patrick Henry Winston and Berthold Klaus Paul Horn
http://www.amazon.com/exec/obidos/asin/0201083728

Both are a little older (although I think there's a recent edition of the Holt and Winston book), but very well written, and very clear.  The Anderson book is a little more basic than the Holt and Winston book, but either would be a great first book on Lisp.

former lisper
Friday, December 12, 2003

I used Abelson & Sussman's classic "Structure and Interpretation of Computer Programs" for an intro CS class in college, and I must say I found it to be a fantastic resource. It covers Scheme, not Lisp, but as a conceptual introduction and hands-on primer I thought it was great.

I'll have to check out some of the other suggestions here, as I've been itching to spend some time playing with "real" Lisp.

John C.
Friday, December 12, 2003

Thanks for all of the tips!  FWIW, I found one open-source Lisp IDE that looks at first glance to be pretty good:

http://jabberwocky.sourceforge.net/

Robert Jacobson
Friday, December 12, 2003

There's a group called PLT that's specifically focused on using Scheme for teaching.  One sequence they do is more or less "Web Programming for Liberal Arts Students".  It's supposed to be quite approachable.

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

In particular, they provide an IDE that's designed for instruction (DrScheme).  It does work with Windows.

http://www.drscheme.org/
http://www.drscheme.org/tour/

They even have an online (and print) book "How To Design Programs" that teaches Scheme, taking advantage of the DrScheme interface.

http://www.htdp.org/

rwh
Friday, December 12, 2003

Here is another commercial Lisp vendor.  Their Lisp for Windows is free for non-commercial use, but the IDE is limited to a 30 day free trial. They also have a free version available for Macintosh.

http://www.cormanlisp.com

For a larger pool of Lisp knowledge, read the news group comp.lang.lisp

mackinac
Friday, December 12, 2003

The best place I know of to learn about lisp is usenet: http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&safe=off&group=comp.lang.lisp
Very knowledgeable people are there, including authors of books/papers I'll mention.  Polite too.  Useful archives.

Scheme and Common Lisp are two different languages that share a common data format (symbolic expressions; like xml but the data can be things like numbers and symbols, not just strings).  I've seen people really tripped up when they expect one to be like the other.

- Book in progress by an ex-BEA Java guy who took time off to write a lisp book for his friends.  Practical; you build things like a unit test harness and mp3 database from scratch.
http://www.gigamonkeys.com/book/
- The Kernighan & Ritchie of lisp.
http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/cltl/cltl2.html
- Someone wrote down his impressions when he was starting out.
http://www.cs.uni-bonn.de/~costanza/lisp/guide.html
- Many good books mentioned here.
http://www.cliki.net/Favorite%20Lisp%20books
- People mention this book, though I can't review it right now...
http://www-2.cs.cmu.edu/~dst/LispBook/

For Scheme, the free SICP video lectures and book are great.  But it doesn't teach the language so much as programming fundamentals.  In particular, no macros or filehandling.  Recursion instead of iteration.
http://www.swiss.ai.mit.edu/classes/6.001/abelson-sussman-lectures/
Ars Digita University has their own SICP lectures too.
http://aduni.org/courses/sicp/

Tayssir John Gabbour
Friday, December 12, 2003

I'll second rwh's vote for plt-scheme.

Over the years I've made serveral attempts at getting to grips with Lisp.

Paul Graham's stuff is good, but he preaches Lisp with such religous zealotry it feels like reading the Watchtower sometimes.

For the experienced programmer 'Teach Yourself Scheme in Fixnum Days'[2] is an excellent introduction.  It's the first book to make Lisp accessible.

That said, it is still hard going.  I read up the chapter at Macros before having to take a break and start again at the beginning.

In between I found playing with Rebol[3] very useful.  It takes a great deal from Lisp, but is far more pragmattic in its approach. 

I found that the Scheme mail list spent most of its time in incomprehensible discussions regarding continuations and the like.  The Rebolers are much more practical in their approach.

Dr Scheme is also an excellent programming environment, if a little non-standard.  The online help is good, although the multitude of dialects supports can be a little confusing.

This is my experience so far, but I still have a long way to go.

[1] http://www.paulgraham.com/lisp.html
[2]
http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html
[3] http://www.rebol.com

Ged Byrne
Friday, December 12, 2003

Never forget about "Common Lisp: A Gentle Introduction to Symbolic Computation" as a starting point.

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

Andrew Burton
Friday, December 12, 2003

Once you get basic Lisp syntax and ways of thinking down, through SICP or other (the AdUni videos are excellent), I recommend Peter Norvig's Paradigms of Artificial Intelligence Programming, Case Studies in Common Lisp.

http://www.amazon.com/exec/obidos/tg/detail/-/1558601910/qid=1071360437//ref=sr_8_xs_ap_i0_xgl14/102-6035158-0340119?v=glance&s=books&n=507846

There's much more general programming and Lisp material in it than the title implies.

Robert Sayre
Saturday, December 13, 2003

I strongly second the recommendation to read PAIP once you've got the basics into your brain. It's a wonderful book, even if you're either not interested in AI or not interested in Lisp. It's probably pretty good even if you're not interested in either.

Another introductory book available on-line is at
http://www.psg.com/~dlamkins/sl/contents.html
and may be worth a look.

Gareth McCaughan
Monday, December 15, 2003

Thanks again for all of the good tips.  I've decided to stick with Common Lisp for now, as my main goal is to be able to read Lisp code from other people. 

I'm working my way through the "Gentle" book, which so far seems to be pretty good.  It uses an interesting structure -- the first several chapters just introduce you to the concepts of functions and Lisp's list data structure.  There isn't any actual Lisp code until Chapter 3.

Robert Jacobson
Monday, December 15, 2003

Ok, I hope you can help me to get started with this common lisp language.
So my question is that how can I make a windows executable file which opens a box saying Hello World!

I know that,

' "Hello World!"

will print that, but what do I have to write before and after that?

Antti Isomursu
Thursday, February 12, 2004

*  Recent Topics

*  Fog Creek Home