Skip to main content

2.4 Programming Types

There are two general categories of types in Emacs Lisp: those having to do with Lisp programming, and those having to do with editing. The former exist in many Lisp implementations, in one form or another. The latter are unique to Emacs Lisp.

Integer Type  Numbers without fractional parts.
Floating-Point Type  Numbers with fractional parts and with a large range.
Character Type  The representation of letters, numbers and control characters.
Symbol Type  A multi-use object that refers to a function, variable, or property list, and has a unique identity.
Sequence Type  Both lists and arrays are classified as sequences.
Cons Cell Type  Cons cells, and lists (which are made from cons cells).
Array Type  Arrays include strings and vectors.
String Type  An (efficient) array of characters.
Vector Type  One-dimensional arrays.
Char-Table Type  One-dimensional sparse arrays indexed by characters.
Bool-Vector Type  One-dimensional arrays of t or nil.
Hash Table Type  Super-fast lookup tables.
Function Type  A piece of executable code you can call from elsewhere.
Macro Type  A method of expanding an expression into another expression, more fundamental but less pretty.
Primitive Function Type  A function written in C, callable from Lisp.
Byte-Code Type  A function written in Lisp, then compiled.
Record Type  Compound objects with programmer-defined types.
Type Descriptors  Objects holding information about types.
Autoload Type  A type used for automatically loading seldom-used functions.
Finalizer Type  Runs code when no longer reachable.