Linisp

Types
Login

Types

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.