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