[cl-faq] [lispfaq commit] r19 - trunk
codesite-noreply@google.com
codesite-noreply at google.com
Mon Mar 12 21:50:10 CST 2007
Author: peter.seibel
Date: Mon Mar 12 20:49:51 2007
New Revision: 19
Modified:
trunk/faq.txt
Log:
Adding new 'Is Scheme a Lisp?' answer.
Modified: trunk/faq.txt
==============================================================================
--- trunk/faq.txt (original)
+++ trunk/faq.txt Mon Mar 12 20:49:51 2007
@@ -121,7 +121,7 @@
@ \link{\href{http://www.lispworks.com/documentation/HyperSpec/Front/index.htm}\text{The HyperSpec}}, as appropriate
-Learning why macros are soooo cool / Advanced Lisp:
+Learning why macros are so cool / Advanced Lisp:
@ \link{\href{http://mitpress.mit.edu/sicp/}\text{Structure and Interpretation of Computer Programs}} ("SICP") (Actually
about Scheme, but useful to learn how to think in Lisp)
@@ -143,7 +143,7 @@
@ \link{\href{http://www.norvig.com/paip.html}\text{Paradigms of Artificial Intelligence Programming : Case Studies in
Common Lisp}} ("PAIP")
-Writing a Lisp interpreter / compiler
+Writing a Lisp interpreter or compiler
@ \link{\href{www.amazon.com/exec/obidos/tg/detail/-/0521545668?v=glance}\text{Lisp in Small Pieces}} ("LiSP")
@@ -1184,4 +1184,43 @@
vacant. Put together a set of well-tested, well-documented libraries
and distribute them in a single blob as the Common Lisp Standard
Library and the world will beat a path to your door.
+
+** Common Lisp and other languages
+
+*** Is Scheme a Lisp?
+
+Yes. Anyway, the Scheme standard
+(\link{\href{http://www.schemers.org/Documents/Standards/R5RS/}\text{R5RS}})
+says it is. ("Scheme is a statically scoped and properly
+tail-recursive dialect of the Lisp programming language.") On the
+other hand, Scheme and Common Lisp, while sharing an intellectual
+legacy and a number of important characteristics, also differ in ways
+just subtle enough to stir up a good old fashion religious war.
+Consequently, Scheme vs. Common Lisp discussions almost never go well.
+And you may run across prominent Common Lispers who will argue--in an
+angels on a pinhead kind of way--that Scheme is \i{not} in fact a
+Lisp. You may also hear folks who say "Scheme is not Lisp", meaning,
+Scheme is not the end-all-and-be-all of possible Lisp dialects. This
+is usually said in conversations with people turned off "Lisp" forever
+by a bad undergraduate experience with Scheme.
+
+Ultimately Scheme and Common Lisp differ in their history and their
+current communities of users. Scheme was invented in order to test out
+certain theories of language design and continues to be used by people
+interested in having a small, simply defined language for further
+language research and pedagogy. Which is not to say that's the only
+way Scheme is used, but it helps give the Scheme community its
+particular flavor. Common Lisp, on the other hand, is the offspring of
+the systems-programming Lisps of the Artificial Intelligence boom. It
+continues to be an important AI language and is now used largely by
+people who care more about raw power and writing software than they do
+about conceptual purity and good pedagogy. Again, this is a portrait
+in broad strokes but there is truth in it.
+
+As an intellectual exercise, learning both Scheme and Common Lisp will
+enrich your understanding of the platonic ideal of Lisp and of
+programming in general. As a practical matter, if you do learn both,
+you'll likely gravitate to one or the other based on your own
+predilections and the kind of projects you are interested in.
+
More information about the cl-faq
mailing list