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.  SeeIntroduction (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