This page was last updated on .

CLHS FAQ » What's the Common Lisp HyperSpec (CLHS)?

It's the primary authoritative free reference used in practice by Common Lisp users and implementors alike.
It comprehensively describes the semantics of Common Lisp in great details.

Note however that it's not a tutorial. You'll nevertheless need to spend a great many hours reading it if you're ever to achieve Common Lisp mastery. I also offer this article of mine which, despite being incomplete, offers many useful tips and makes it easier to find groups of logically related symbols.

The only source of information that would be even more authoritative than the CLHS is the text of the ANSI standard itself, however it's much less accessible in more ways than one: it must be bought from ANSI, it's not easily searchable or browsable (because it's a PDF) and it's even a low-quality scan.

Lispworks provides the official introduction to the CLHS.

CLHS FAQ » Who made the CLHS and how, and who owns the copyright on it?

Kent Pitman, with funding from LispWorks and authorization from ANSI, mechanically derived the CLHS from the TeX sources of the ANSI Common Lisp standard.

Lispworks Ltd owns the copyright on the CLHS.

Common Lisp HyperSpec is a trademark of Lispworks Ltd.

A more formal and authoritative description is available in the CLHS.

CLHS FAQ » Where can I find the CLHS online?

The canonical online location is:

The CLHS license prohibits redistribution on the web (among other things), so make sure you access and reference this particular online copy of the CLHS when sharing links with others.

CLHS FAQ » Can I install a copy of the CLHS locally on my computer?

Yes, LispWorks allows this. They have some official installation instructions. However, since 9 February 2012, there's a much easier and faster way to install and configure the CLHS locally, as it's now available in Quicklisp:

  1. First, install Quicklisp if you don't have it already. It's very easy, and pretty much required anyway.

  2. Then, run (ql:quickload "clhs") in the REPL. The first time you run this command, it will download, install and load the CLHS ASDF wrapper. A full copy of the CLHS will be downloaded as a side-effect.

  3. Finally, assuming you're using Emacs+Slime, all that's left to do is to tell Emacs to use your local copy of the CLHS instead of the online version on LispWorks' site.

    Run (clhs:print-emacs-setup-form) in the REPL and follow the instructions.

    One easy way to make Emacs evaluate a form is to put the point (cursor) after the closing parenthesis and invoke M-x eval-last-sexp. This will affect the current Emacs session only.

    Putting a form in your ~/.emacs init file would affect any subsequent Emacs sessions.

CLHS FAQ » How to access documentation for particular symbols (and such)?

Like this.

CLHS FAQ » How to get the canonical (Lispworks) URL for a symbol (and such)?

One drawback of using a local copy of the CLHS is that you can't directly use the URL of the page to share on the web or IRC. You'll need to translate the local URL to the canonical Lispworks URL, somehow.

I like to use Zach Beane's redirection service for this.

For instance, will redirect you to the function disambiguation page on LispWorks' site.

Some other examples are: