[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document describes a set of Emacs Lisp facilities borrowed from Common Lisp. All the facilities are described here in detail; for more discussion and examples, Guy L. Steele’s Common Lisp, the Language, second edition, is the definitive book on Common Lisp. While this document does not assume any prior knowledge of Common Lisp, it does assume a basic familiarity with Emacs Lisp.
• Overview | Installation, usage, etc. | |
2. Program Structure | Arglists, ‘eval-when’, ‘defalias’ | |
3. Predicates | ‘typep’, ‘eql’, and ‘equalp’ | |
4. Control Structure | ‘setf’, ‘when’, ‘do’, ‘loop’, etc. | |
5. Macros | Destructuring, ‘define-compiler-macro’ | |
6. Declarations | ‘proclaim’, ‘declare’, etc. | |
7. Symbols | Property lists, ‘gensym’ | |
8. Numbers | Predicates, functions, random numbers | |
9. Sequences | Mapping, functions, searching, sorting | |
10. Lists | ‘cadr’, ‘sublis’, ‘member*’, ‘assoc*’, etc. | |
11. Hash Tables | ‘make-hash-table’, ‘gethash’, etc. | |
12. Structures | ‘defstruct’ | |
13. Assertions and Errors | ‘check-type’, ‘assert’, ‘ignore-errors’. | |
A. Efficiency Concerns | Hints and techniques | |
B. Common Lisp Compatibility | All known differences with Steele | |
C. Porting Common Lisp | Hints for porting Common Lisp code | |
Function Index | ||
Variable Index |
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, CL adds enough functionality to make Emacs Lisp programming significantly more convenient.
Some Common Lisp features have been omitted from this package for various reasons:
assoc
function is incompatible with the
Common Lisp assoc
. In such cases, this package usually
adds the suffix ‘*’ to the function name of the Common
Lisp version of the function (e.g., assoc*
).
The package described here was written by Dave Gillespie, ‘daveg@synaptics.com’. It is a total rewrite of the original 1986 ‘cl.el’ package by Cesar Quiroz. Most features of the Quiroz package have been retained; any incompatibilities are noted in the descriptions below. Care has been taken in this version to ensure that each function is defined efficiently, concisely, and with minimal impact on the rest of the Emacs environment.
1.1 Usage | How to use the CL package | |
1.2 Organization | The package’s five component files | |
1.3 Installation | Compiling and installing CL | |
1.4 Naming Conventions | Notes on CL function names |
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Aidan Kehoe on December 27, 2016 using texi2html 1.82.