Recursion and Induction: Symbols
Unlike many languages, Lisp provides symbols as primitive data objects. Some example symbols are t, nil, LOAD, STORE, ICONST_0, prime-factors, ++, and file77. For the purposes of this document, we will treat symbols as atomic objects, though it is actually possible to construct and deconstruct them in terms of strings.
For the purposes of this document, a symbol is a sequence of alphabetic characters, digits, and/or certain signs (specifically, +, -, *, /, =, <, >, ?, !, $, &, and _ (underscore)) that cannot be read as a number. Case is unimportant. Symbols are parsed to have the greatest length possible under the rules above. Thus, xy is one symbol, not two symbols (x and y) written without intervening whitespace!
Note that t and T are different ways to write the same symbol, as are nil, Nil, and NIL. T and nil are called the Boolean symbols. T is frequently used to denote true and nil is used to denote false. For reasons that will become apparent, nil is also used as the empty list.
(Maybe explore <<symbols>>?)
Next: