ALisp has several core data types.
Datatype | Description |
---|---|
Integers | Represented as a literal number. |
Numbers | Represented as a literal number. |
Symbols | Represented as any string of characters other than the following: single-quote, double-quote, left parenthesis, or right parenthesis. Additionally, symbols must not begin with a pound sign. |
Pairs | Represented as a parenthesis-enclosed pair of two items, separated by a dot `.'. The first item is called the car and the second item is called the cdr. |
Lists | Represented as a parenthesis-enclosed list of whitespace-separated objects. An improper list can be represented the same way as a list, except that it has a dot between its last two items. |
Strings | Represented as a double-quote-enclosed string of any characters except for a double-quote. |
Vectors | Represented as a proper list preceded immediately by a pound sign. |
Procedures | |
Macros | |
Closures | |
User-defined macros | |
Special objects | These include the boolean true and false values (`#t' and `#f', respectively), and the end-of-list value (`()'). |
Some other data types are used only internally by the ALisp interpreter.
Additional data types are defined by the FrontierSpace engine. These are: