Symbol
This type is used for the names of variables, functions and "atomic" values that only equal themselves such as true and false.
This is, in essence a more limited version of a string that has been granted a special use in the Syntax. It cannot contain white-space, question-marks (ie. the "?" character) or begin with a digit.
Number
Equivalent to long int in C.
String
A memory-managed version of char* in C.
Function
Executable values, usually but not always bound to a variable. These two forms:
Builtin
A function that has been written as part of the the C code that implements Linisp. If you were to attempt to print one the output would be:
<builtin>
See Functions for more details
Lambda
The datatype of functions that are either in the program's source or a library. These are equivalent to two Q-Expressions (see below), one listing parameters and the other listing function-calls however the Linisp interpreter has them marked as a different type.
NOTE: This type is named after a field of mathematics called lambda-calculus. Lambda is the Greek name for the letter "L".
If you were to print a Lambda value the output would be something like:
(\x { parameters } { function calls })
S-Expression
Symbolic-Expressions These are lists that are immediately used as function calls by the interpreter, thus being substituted for their return value. Values listed within an S-Expression may be of any type.
See Syntax for more details.
Q-Expression
This is a list containing values of potentially mixed types. A Q-Expression may either be used as a plain list or as a function call that will be evaluated at a latter time.
See Syntax for more details.
Error
Values returned when a function cannot complete its proper purpose. These behave exactly like the String type.