[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Frequently Asked Questions [Weekly reminder]

Last-Modified: Fri Oct 14 15:48:17 1994 by Mark Kantrowitz
Version: 1.50
Maintainer: Mark Kantrowitz and Barry Margolin <ai+lisp-faq@cs.cmu.edu>

;;; ******************************************************************
;;; Answers to Frequently Asked Questions about the Lisp/Scheme FAQs *
;;; ******************************************************************
;;; Written by Mark Kantrowitz and Barry Margolin
;;; lisp_faq.faq -- 12399 bytes

This is a reminder of the existence of the monthly FAQ postings to the
newsgroups comp.lang.lisp, comp.lang.scheme, and comp.lang.clos. These
FAQ postings answer Frequently Asked Questions (FAQs) about Lisp and
Lisp-like programming languages.

Certain questions and topics come up frequently in the various network
discussion groups devoted to and related to Lisp and Scheme.  The FAQ
posting is an attempt to gather these questions and their answers into
a convenient reference for Lisp and Scheme programmers.  It is posted
once a month.  The hope is that this will cut down on the user time
and network bandwidth used to post, read and respond to the same
questions over and over, as well as providing education by answering
questions some readers may not even have thought to ask.

*****                               AND                               *****

The FAQ postings are posted to the above-mentioned newsgroups on the
13th of every month. The posts are also sent to the newsgroup
news.answers where they should be available at any time (ask your local
news manager). This reminder is posted every Sunday.

The latest version of this FAQ is available via anonymous FTP from CMU:

   To obtain the files from CMU, connect by anonymous FTP to 
      ftp.cs.cmu.edu:/user/ai/pubs/faqs/lisp/  []
   using username "anonymous" and password "name@host" (substitute your
   email address) or via AFS in the Andrew File System directory
   and get the files lisp_1.faq, lisp_2.faq, lisp_3.faq, lisp_4.faq,
   lisp_5.faq, lisp_6.faq and lisp_7.faq.

You can also obtain a copy of the FAQ by sending a message to
ai+query@cs.cmu.edu with 
   Send Lisp FAQ
in the message body.

The FAQ postings are also archived in the periodic posting archive on
   rtfm.mit.edu:/pub/usenet/news.answers/lisp-faq/ []
   rtfm.mit.edu:/pub/usenet/news.answers/scheme-faq/ []
If you do not have anonymous ftp access, you can access the archive by
mail server as well.  Send an E-mail message to
mail-server@rtfm.mit.edu with "help" and "index" in the body on
255 lines for more information.

Automatically generated HTML versions of the Lisp and Scheme FAQs are
accessible by WWW as part of the AI-related FAQs Mosaic page. The URL
for this resource is
The direct URLs for the Lisp and Scheme FAQs are

Recent changes for each of the FAQs are listed near the beginning of
Part 1 of the respective FAQ posting. 

**************************** Lisp Questions ***************************

There are currently seven parts to the Lisp FAQ:

   1. Introductory Matter and Bibliography of Introductions and References
   2. General Questions
   3. Common Programming Pitfalls
   4. Lisp Implementations and Mailing Lists
   5. Object-oriented Programming in Lisp
   6. FTP Archives and Resources
   7. Lisp Window Systems and GUIs

All parts are posted to comp.lang.lisp. Part 5 is cross-posted to the
comp.lang.clos newsgroup.  

Topics Covered (Part 1):

  [1-0]   What is the purpose of this newsgroup?
  [1-1]   What is the difference between Scheme and Common Lisp?
  [1-2]   Lisp books, introductions, documentation, periodicals,
          journals, and conference proceedings. 
  [1-3]   How can I improve my Lisp programming style and coding efficiency?
  [1-4]   Where can I learn about implementing Lisp interpreters and compilers?
  [1-5]   What is the "minimal" set of primitives needed for a Lisp
  [1-6]   What does CLOS, PCL, X3J13, CAR, CDR, ... mean? 
  [1-7]   Lisp Job Postings

Topics Covered (Part 2):

  [2-1]   Is there a GNU-Emacs interface to Lisp?
  [2-2]   When should I use a hash table instead of an association list?
  [2-3]   What is the equivalent of EXPLODE and IMPLODE in Common Lisp?
  [2-4]   Is Lisp inherently slower than more conventional languages such as C?
  [2-5]   Why does Common Lisp have "#'"?
  [2-6]   How do I call non-Lisp functions from Lisp?
  [2-7]   Can I call Lisp functions from other languages?
  [2-8]   I want to call a function in a package that might not exist at
          compile time. How do I do this?  
  [2-9]   What is CDR-coding?
  [2-10]  What is garbage collection?
  [2-11]  How do I save an executable image of my loaded Lisp system?
          How do I run a Unix command in my Lisp?
  [2-12]  I'm porting some code from a Symbolics Lisp machine to some
          other platform, and there are strange characters in the code.
          What do they mean?  
  [2-13]  History: Where did Lisp come from?
  [2-14]  How do I find the argument list of a function?
          How do I get the function name from a function object?
  [2-15]  How can I have two Lisp processes communicate via unix sockets?
  [2-16]  How can I create a stream that acts like UNIX's /dev/null
          (i.e., gobbles any output and immediately signals EOF on
          input operations)?
  [2-17]  Read-time conditionalization of code (#+ #- and *features*)
  [2-18]  What reader macro characters are used in major Lisp systems?
  [2-19]  How do I determine if a file is a directory or not? 
          How do I get the current directory name from within a Lisp 
          program? Is there any way to create a directory?
  [2-20]  What is a "Lisp Machine" (LISPM)?
  [2-21]  How do I tell if a symbol names a function and not a macro?

Common Pitfalls (Part 3):

  [3-0]  Why does (READ-FROM-STRING "foobar" :START 3) return FOOBAR
         instead of BAR?  
  [3-1]  Why can't it deduce from (READ-FROM-STRING "foobar" :START 3)
         that the intent is to specify the START keyword parameter
         rather than the EOF-ERROR-P and EOF-VALUE optional parameters?   
  [3-2]  Why can't I apply #'AND and #'OR?
  [3-3]  I used a destructive function (e.g. DELETE, SORT), but it
         didn't seem to work.  Why? 
  [3-4]  After I NREVERSE a list, it's only one element long.  After I
         SORT a list, it's missing things.  What happened? 
  [3-5]  Why does (READ-LINE) return "" immediately instead of waiting
         for me to type a line?  
  [3-6]  I typed a form to the read-eval-print loop, but nothing happened. Why?
  [3-7]  DEFMACRO doesn't seem to work.
         When I compile my file, LISP warns me that my macros are undefined
         functions, or complains "Attempt to call <function> which is 
         defined as a macro.
  [3-8]  Name conflict errors are driving me crazy! (EXPORT, packages)
  [3-9]  Closures don't seem to work properly when referring to the
         iteration variable in DOLIST, DOTIMES, DO and LOOP.
  [3-10] What is the difference between FUNCALL and APPLY?
  [3-11] Miscellaneous things to consider when debugging code.
  [3-12] When is it right to use EVAL?
  [3-13] Why does my program's behavior change each time I use it?
  [3-14] When producing formatted output in Lisp, where should you put the
         newlines (e.g., before or after the line, FRESH-LINE vs TERPRI,
         ~& vs ~% in FORMAT)?
  [3-15] I'm using DO to do some iteration, but it doesn't terminate. 
  [3-16] My program works when interpreted but not when compiled!

Lisp Implementations and Mailing Lists (Part 4):

  [4-0]   Free Common Lisp implementations.
  [4-1]   Commercial Common Lisp implementations.
  [4-1a]  Lisp-to-C translators
  [4-2]   Scheme Implementations
  [4-4]   Free Implementations of Other Lisp Dialects
  [4-5]   Commercial Implementations of Other Lisp Dialects
  [4-6]   What is Dylan?
  [4-7]   What is Pearl Common Lisp?
  [4-9]   What Lisp-related discussion groups and mailing lists exist?
  [4-10]  ANSI Common Lisp -- Where can I get a copy of the draft standard?

Object-oriented Programming in Lisp (Part 5):

  [5-0]   What is CLOS (PCL) and where can I get it?
          How do you pronounce CLOS? What is the Meta-Object Protocol (MOP)?
  [5-1]   What documentation is available about object-oriented
          programming in Lisp?  
  [5-2]   How do I write a function that can access defstruct slots by
          name?  I would like to write something like 
          (STRUCTURE-SLOT <object> '<slot-name>).   
  [5-3]   How can I list all the CLOS instances in a class?
  [5-4]   How can I store data and CLOS instances (with possibly circular
          references) on disk so that they may be retrieved at some later
          time? (Persistent Object Storage)
  [5-5]   Given the name of a class, how can I get the names of its slots?
  [5-6]   Free CLOS software.

FTP Resources (Part 6):

  [6-0] General information about FTP Resources for Lisp
  [6-1] Repositories of Lisp Software
  [6-3] Publicly Redistributable Lisp Software
  [6-6] Formatting code in LaTeX (WEB and other literate programming tools)
  [6-7] Where can I get an implementation of Prolog in Lisp?
  [6-8] World-Wide Web (WWW) Resources

Lisp Window Systems and GUIs (Part 7):
  [7-1] How can I use the X Window System or other GUIs from Lisp?
  [7-2] What Graphers/Browsers are available?

*************************** Scheme Questions **************************

Topics Covered (Part 1):
  [1-0]   What is the purpose of this newsgroup?
  [1-2]   What is the difference between Scheme and Common Lisp?
  [1-3]   Scheme books, introductions, documentation, periodicals,
          journals, and conference proceedings. 
  [1-4]   Where can I learn about implementing Scheme interpreters and 
  [1-7]   Standards for Scheme -- What are R4RS and IEEE P1178?
  [1-8]   How do I do object-oriented programming in Scheme?
  [1-9]   Repositories of Scheme Software
  [1-10]  Publicly Redistributable Scheme Software
  [1-11]  Formatting code in LaTeX (WEB and other literate programming tools)
  [1-12]  Where can I get an implementation of Prolog in Scheme?
  [1-13]  What does SICP, SCOOPS, R4RS, CAR, CDR, ... mean?
  [1-14]  Why is there no EVAL in Scheme?
  [1-15]  World-Wide Web (WWW) Resources
  [1-16]  Why is Scheme called 'Scheme'?

Topics Covered (Part 2):
  [2-1]   Free Scheme implementations.
  [2-2]   Commercial Scheme implementations.
  [2-3]   What Scheme-related discussion groups and mailing lists exist?


If you think of questions that are appropriate for these FAQs, or would
like to improve an answer, please send email to us at ai+lisp-faq@cs.cmu.edu.

Note that the lisp-faq mailing list is for discussion of the content
of the FAQ postings only.  It is not the place to ask questions about
Lisp; use either the common-lisp@ai.sri.com mailing list or the
comp.lang.lisp newsgroup for that.  Likewise, it is not the place to
ask questions about Scheme; use either the scheme@ai.mit.edu mailing
list or the comp.lang.scheme newsgroup (scheme@mc.lcs.mit.edu) for
that.  If a question appears frequently in one of those forums, it
will get added to the appropriate FAQ list.

;;; *EOF*