Character Overview

Analytic Information Server supports the Character Native data type. The Character type can contain the 256 valid ASCII character values.

When to Use

The Character Native data type is suitable for situations in which one is operating on the elements of Text, String, or Symbol objects. Example situations may include the lower case letters: "a" through "z", the upper case letters: "A" through "Z", the decimal digits: "0" through "1", or the special characters #\tab, #\newline.

Character Constants

Lambda Information Server supports character constants. The sharp character followed by the backslash (#\) precedes each character constant.

For example:



The character |a|


The character |A|


The character |(|


The character |\|


The ASCII backspace character


The ASCII escape character


The ASCII newline character sequence


The ASCII form-feed character


The ASCII carriage-return character


The ASCII delete character


The ASCII blank character


The ASCII tab character

Native Data Type

The Character Data Type is an example of an AIS Native Data Type.

Analytic Information Server stores all of its Native Data Types in Virtual Machine Containers. All containers are stored in memory. Containers provide the basic storage mechanism for modeling data of all types. Containers provide these fundamental characteristics:

Ability to hold any type of data (including code) at any time.

Ability to know what type of data is contained.

Ability to be stored, retrieved and evaluated by the system.

Ability to handle type conversion, and memory management automatically.

Containers come in two sizes, Large and Small. Small containers are six bytes in length, and large containers are ten bytes in length. Large containers can store larger amounts of data immediately and place less of a burden on the Heap manager. Small containers require less immediate space, but place more of a burden on the Heap manager.

Large containers can store the following data types immediately and does not require the services of the Heap manager:

Small containers can store the following data types immediately without placing additional burden on the Heap manager:

Analytic Information Server containers can be saved and loaded to and from persistent (database) storage at any time. Containers with immediate data are saved on disk in fixed length records equal to the size of the container. Containers with Heap object references are saved in fixed length records, which are automatically expanded to include the contents of the Heap object, and any objects referenced by the Heap object, etc. This feature is called Object Closure Management and is automatic with every Analytic Information Server container database save. Analytic Information Server containers may be loaded from any database repository record at any time. If the data in the record is immediate, the database load fills the container with the immediate data. If the data in the record is an object closure, the database load fills the container with a Heap object reference, and all of the objects in the record are loaded back into the Heap with the same referential relationships they had when they were saved.


Data Type Functions

The Character object can be demonstrated by the following functions.

addMethod cadd ccompareEQ ccompareGE
ccompareGT ccompareLE ccompareLT ccompareNE
cdiv character cmod cmul
compareEQ compareGE compareGT compareLE
compareLT compareNE compare comparison
csub defmethod isCharacter isEqual
isIdentical isType methodsOf ref
send setq sizeof type


Data Type Examples

The Character object can be demonstrated by the following examples.

Example_Character_addMethod_013 Example_Character_cadd_001 Example_Character_ccompareEQ_001 Example_Character_ccompareGE_001
Example_Character_ccompareGT_001 Example_Character_ccompareLE_001 Example_Character_ccompareLT_001 Example_Character_ccompareNE_001
Example_Character_cdiv_001 Example_Character_character_001 Example_Character_cmod_001 Example_Character_cmul_001
Example_Character_compareEQ_010 Example_Character_compareGE_010 Example_Character_compareGT_010 Example_Character_compareLE_010
Example_Character_compareLT_010 Example_Character_compareNE_010 Example_Character_compare_010 Example_Character_comparison_010
Example_Character_csub_001 Example_Character_defmethod_013 Example_Character_isCharacter_001 Example_Character_isEqual_008
Example_Character_isIdentical_008 Example_Character_isType_012 Example_Character_methodsOf_013 Example_Character_send_011
Example_Character_setq_017 Example_Character_sizeof_010 Example_Character_type_012