On Jul 19, 10:11 pm, Alex <
muzikman...@dontwantspam.com> wrote:
> -Can anyone recomment a good guide, whether it's a book (I don't mind
> buying something) or free online guide, that will get me going with the
> basic operations of Lisp and some example programs, and maybe even start
> going into more intermediate to advanced stuff? I'm not looking for
> something that has to be really easy, I don't mind working hard to
> understand it, I just need to be pointed in the right
> direction on where to start...
There are a number of online resources. For a start, look at:
Peter Seibel 'Practical Common Lisp'
David Touretsky 'Gentle Introduction to Symbolic Computation'
Pual Graham 'On Lisp' (advanced)
Nick Levine's unfinished book on Lisp for O'Reilly
David Cooper 'Basic Lisp Techniques'
The Common Lisp HyperSpec (can be downloaded)
Common Lisp Quick Reference (clqr)
For dead tree books, purchase:
Conrad Barski 'Land of Lisp'
Paul Graham 'ANSI Common Lisp'
I have found using Common Lisp extraordinarily difficult, in part for
the following reasons:
1. There a number of implementations for Common Lisp, and they are all
different. Learning CL means learning a particular implementation,
which means that the things you read may or may not work in your
implementation, but no on3e tells you that.
2. There's not one way of dealing with external libraries. The
information you read on packages and systems isn't consistent, and
again, no one tells you that.
3. With specific tasks (e.g., building a GUI), different librarys
exist which are incompatible, with different features and different
documentation, and again, no one explains the different libraries.
4. Most languages have a set of tasks for which they are well suited
and they have concise tutorials on using the languages for the task.
Not so in CL. In fact, it's very hard to find any particular thing CL
excels at, so you can learn the language for that purpose and have a
base for further learning.
Still, CL is worth learning. The one thing I would emphasize is that
you have a need for learning the language, so you can write real code
and test it against real requirements. Otherwise, CL is just another
dead language that you might develop an intellectual knowledge but
never an experience base.
CC.