Linisp

Types
Login

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.