cl: Overview
1 Overview
**********
This document describes a set of Emacs Lisp facilities borrowed from
Common Lisp. All the facilities are described here in detail. While
this document does not assume any prior knowledge of Common Lisp, it
does assume a basic familiarity with Emacs Lisp.
Common Lisp is a huge language, and Common Lisp systems tend to be
massive and extremely complex. Emacs Lisp, by contrast, is rather
minimalist in the choice of Lisp features it offers the programmer. As
Emacs Lisp programmers have grown in number, and the applications they
write have grown more ambitious, it has become clear that Emacs Lisp
could benefit from many of the conveniences of Common Lisp.
The “CL” package adds a number of Common Lisp functions and control
structures to Emacs Lisp. While not a 100% complete implementation of
Common Lisp, it adds enough functionality to make Emacs Lisp programming
significantly more convenient.
Some Common Lisp features have been omitted from this package for
various reasons:
• Some features are too complex or bulky relative to their benefit to
Emacs Lisp programmers. CLOS and Common Lisp streams are fine
examples of this group. (The separate package EIEIO implements a
subset of CLOS functionality. Introduction (eieio)Top.)
• Other features cannot be implemented without modification to the
Emacs Lisp interpreter itself, such as multiple return values,
case-insensitive symbols, and complex numbers. This package
generally makes no attempt to emulate these features.
This package was originally written by Dave Gillespie,
‘daveg@synaptics.com’, as a total rewrite of an earlier 1986 ‘cl.el’
package by Cesar Quiroz. Care has been taken to ensure that each
function is defined efficiently, concisely, and with minimal impact on
the rest of the Emacs environment. Stefan Monnier added the file
‘cl-lib.el’ and rationalized the namespace for Emacs 24.3.
Menu