Contra Chuck, the advantage of Common Lisp is that it has a standard to which implementations apply and what they strive for, so you can pretty much develop with SBCL (which has excellent type checking and type inference) and then, say deploy as an executable associated with C libraries (with ECL or others) or as .jar using Java libraries (with ABCL) or with a Mac or Windows native GUI (Clozure, both). Generic Lisp is surprisingly portable across architectures and implementations over time, and Common Lispers does its best to support such things with language support. As an illustration, one silly divergence of non-standard behavior is the question: "Is this a special variable?" So I answered all the options that I use:
#-abcl (defun special-variable-p (symbol)
which, while reading, decreases by ABCL (it already exists), to (defun special-variable-p (symbol) (si:specialp symbol)) by ECL, etc. Therefore, I can put this in my .rc files and use the generic function in the REPL. But this is not very important: it is not threading or variously supported networks or a library of communication sequential processes . This last example has only one #+sbcl/#-sbcl , even if it works on five implementations. Because it relies on code that has been carefully ported.
But what allows this (and other) advantages also poses a challenge for the student: Common Lisp is a very large language. This is not something that you can erupt in a week or two, as I did Clojure (but my Clojure is already fading with the excellent changes set for deployment), this language, although heavy in its merits, I reminded, unlike that I like Common Lisp.) So you should read this page a lot and save the HyperSpec keystroke (for me, Mx hyperspec RET do-symbols RET is close enough to the Bible.), and consider buying a few books. I'm Practical Generic Lisp , just got Let Over Lambda , and will buy PAIP soon now.
But even if Common Lisp is the True Answer , you won’t waste your time “just picking” some deceptively screaming alternative (“deceiving” because the regular CL don’t “show you everything that macros can do, and has more kinds of macros than anyone. The usual comparison is between bad CL and optimized syntax alternative X). You will still learn the basics, you can still use a lot of what you can read in SICP, Lisp, The Little Schemer etc .. Lisp, even the wrong Lisp, is still better e than non-w139>. (But you will spend some time doing parts of the right Lisp, bad, in the wrong Lisp. Meta-Greenspun.)
ayrnieu Feb 19 '09 at 1:43 2009-02-19 01:43
source share