Version: 4.1.4.1

1.1 Data Types

Applicative Common Lisp is constructed from the following data types:

  Any = Atom
  | (cons Any Any)
     
  Atom = Symbol
  | String
  | Character
  | Number
     
  Symbol = 'A
  | 'AB
  | 'ABC
  | ...
     
  String = "a"
  | "ab"
  | "abc"
  | ...
     
  Character = #\a
  | #\b
  | #\c
  | ...
     
  Number = Rational
  | (complex Rational Rational)
     
  Rational = 0
  | 1
  | -1
  | 1/2
  | -1/2
  | ...

All values are immutable, and any values constructed identically are indistinguishable (e.g. copying a list does not yield a "different" list). By convention, booleans and lists are encoded as follows:

  Boolean = 'T
  | 'NIL
     
  List = 'NIL
  | (cons Any List)