Contents of the Lisp FAQs (Mark Kantrowitz/Barry Margolin): 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 interpreter? [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? How do I exit Lisp? Access environment variables? [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 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] Where can I get a copy of the ANSI Common Lisp standard? What is ISO Lisp? 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 '). [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. [5-7] Common CLOS Blunders 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?