Lisp Language
Below you'll find specific questions regarding the programming language Lisp. Enjoy!
- What is Lisp?
- How can I learn Lisp?
- Which should I learn, Common Lisp or Scheme? What's the difference?
- Do you know a good, free Lisp implementation?
- Can you recommend a book for someone who wants to learn Lisp?
- Is there a good online tutorial for Lisp?
- Where can I get a copy of On Lisp?
- Is there a set of solutions to the problems in ANSI Common Lisp?
- What do you think of ML and its derivatives?
- Couldn't you add something equivalent to Lisp macros to languages like Perl or Python?
- Do you know anyone who does AutoLisp consulting?
What is Lisp?
Lisp is a family of programming languages descended from a language John McCarthy invented (or more accurately, discovered) in the late 1950s. The two main dialects now are Common Lisp and Scheme. There's a new dialect called Arc that is also available.
Back to topHow can I learn Lisp?
The way to learn any language is to write programs in it. You have two main dialects to choose between: Scheme and Common Lisp. They each have advantages and disadvantages, but the differences between them are tiny compared to the differences between them and other languages, so if you want to start learning Lisp, it doesn't matter which you choose.
There are good books about both dialects, and many good free implementations. So get a book and an implementation, and start trying to write programs. Read existing source code to get an idea of Lisp style. If you run into trouble, ask on comp.lang.lisp. People there are always willing to help newbies.
Which should I learn, Common Lisp or Scheme? What's the difference?
Common Lisp is powerful but ugly. Scheme is small and clean, but the standard only defines the inner core of the language. If I had to deliver an application I'd probably use Common Lisp; if I were teaching a course I might use Scheme (but with Common Lisp macros).
Back to topDo you know a good, free Lisp implementation?
There are several.
The Common Lisp implementation I use is Clisp, but CMUCL is also well-regarded.
For Scheme hacking I use Scheme 48 and PLT Scheme.
Can you recommend a book for someone who wants to learn Lisp?
You might like this one.
Back to topIs there a good online tutorial for Lisp?
Start with Chapter 2 of Ansi Common Lisp, which is a brief introduction to Lisp programming.
For more detail, see the Common Lisp reference manual.
Where can I get a copy of On Lisp?
Thanks to Chip Coldwell, you can now get a Postscript file of it online.
It looks as if the book is going to be in print again soon, but if you are determined to have a valuable first edition, you can get a used copy at Amazon.
Is there a second edition of ANSI Common Lisp?
Some databases say that there is, but there isn't; not yet at least.
Back to topIs there a set of solutions to the problems in ANSI Common Lisp?
Unfortunately not. I was supposed to write one, but we started Viaweb right after the book went to press, and I never got around to it.
Back to topWhat do you think of ML and its derivatives?
Most hackers I know have been disappointed by the ML family. Languages with static typing would be more suitable if programs were something you thought of in advance, and then merely translated into code. But that's not how programs get written.
The inability to have lists of mixed types is a particularly crippling restriction. It gets in the way of exploratory programming (it's convenient early on to represent everything as lists), and it means you can't have real macros.
Couldn't you add something equivalent to Lisp macros to languages like Perl or Python?
Not without turning them into dialects of Lisp. Real macros need to operate on the parse tree of the program. To allow that in a language with syntax, you have to (a) make public the translation from source code to parse trees, and (b) give the programmer the opportunity to run programs on parse trees before they go on to the compiler.
But it would be hard to do that without creating a notation for parse trees; and once you do, your language has become a skin on Lisp, in much the same way that in OS X, the Mac OS became a skin on Unix.
Do you know anyone who does AutoLisp consulting?
No, but Google does.
Back to top