Frequently Asked Questions
This is a brand-new FAQ list. Compilation principles:

  • the questions actually are frequently-asked, as distinct from "were frequently asked twenty years ago" or "good questions that we wish were frequently-asked": anybody transplanting large chunks of the old c.l.l faq will be glared at.

  • an unordered FAQ is a lousy reference document (linear access time), so should be kept short.

  • answers likewise should be brief. If a answer grows to more than 2-3 paragraphs, consider whether it can be made into its own page where it can be referenced directly from other parts of the site and elsewhere on the web.

  • Questions of the form "Where can I get a free implementation of Lisp" or "Who else is using Lisp" are perhaps not usefully answered here as anyone who's found this list on the web site can just as easily find the Implementation or Industry Applications page. If the list eventually starts appearing out of context (e.g. posted to Usenet), this principle may be reviewed.

The Questions

Q: Is there a Lisp FAQ?
In addition to this one (still very much under construction), there are at least two other:

The Common Lisp FAQ (see the Common_Lisp_FAQ wiki page for a description of the project)

The venerable Lisp FAQ by Mark Kantrowitz and Barry Margolin is over 10 years old. A newer revision is available as the lispniks faq; the sources can be downloaded from Google Code.

Q: Why is my program so slow?
Are you using sensible algorithms and data structures? A vector may be a better choice than a list if random access is required, for example.

Have you compiled it? Profiled it?

Advice on optimization may be found somewhere.

Q: Why doesn't this code work?
Aargh! My eyes! Independent of what the program does (or is supposed to do), its layout on the page makes it unnecessarily difficult for experienced Lispers to read. Please read the Lisp Formatting Advice to learn how to format code if you want to ask Lispers for advice

Q: How do I generate a standalone binary?

Leaving aside the philosophical issues of what it means to create a standalone binary (do applications with shared library dependencies count?), how you do this varies according to the Lisp implementation in use, so your first stop should be the implementation documentation. Here are a few pointers for popular implementations:

Q: In the implementation I'm using, MAKE-PATHNAME and MERGE-PATHNAMES have different behaviour for merging directory components - is this right?

Probably, yes. See e.g. Kent M. Pitman's post Re: make-pathname and :defaults and his post Re: pathname defaulting