Lambda Built-in Services

 

Built-in AIS Data Types

Analytic Information Server data types are divided into three categories: Native Data Types (also known as Immediate types), Objects  (heap objects) and Repositories. The Native (immediate) types can be entirely contained within the immediate data of a single Virtual Machine Container. The Objects (heap objects) types are too large to be contained within a single Virtual Machine Container and require extra memory must be managed by the heap manager. Without exception, all of the Object types are identified by an object id.  The object id identifies a block of memory, managed by the Analytic Information Server memory manager, in which the Object's data is stored.

Virtual Machine Containers are of fixed length and come in different sizes. Containers store data immediately and, when data becomes too large to store immediately, it is stored in the Heap and is referenced by the container.

The Heap contains memory resident data, which is of variable length or is too large to fit in small fixed containers. The Analytic Information Server object Heap manager supports automated object resizing, garbage collection, and anti-fragmentation algorithms so that the user may concentrate on the analysis and modeling of data rather than on memory management.

Repositories (databases) contain persistent data of all sorts. Analytic Information Server supports repositories with multiple database volumes and multiple database schema's including General Object Repositories, Text Repositories, and Spreadsheet Repositories.

Native Data Types

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:

            #void

            error

            Boolean

Character

            Integer

Number

Integer

Money

Percent

String

Text

Character

            Spair

            ...heap object references...

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

            #void

            Boolean

            Character

            Number

            Integer

            ...heap object reference... 

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.

Object Data Types

The Analytic Information Server Object Types are stored in the Heap and are managed by the Heap manager.  The Analytic Information Server Heap manager supports object resizing, garbage collection, and anti-fragmentation algorithms so that the user may concentrate on the analysis and modeling of data rather than on memory management. Without exception, all of the Object types are identified by an object id.  The object id identifies a block of memory, managed by the Analytic Information Server memory manager, in which the Object's data is stored.

The Analytic Information Server Heap Object and Native Data types can be saved and loaded to and from persistent (disk file) 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 in the repository.

Analytic Information Server supports global variables which are valid during the whole life of the current workspace.  Global variables are not lost when the current Lambda invocation returns control.  Lambda Information Server global variables are referenced by specifying the symbol.  In addition to user defined globals, Analytic Information Server global variables include all of the built-in functions.

BitVectorBooleanBrickByteVectorCharacter
ComplexCpxVectorDateDictionaryDirectory
ErrorFltVectorFunctionIntVectorInteger
LambdaListLongVectorMatrixNumMatrix
NumVectorNumberObjVectorObjectRepositoryPair
ShortVectorStringStructureSymbolText
VectorVoid

Built-in Lambda Functions

The sections, which follow, describe all of the AIS built-in global functions, methods, macros, and global variables, which operate upon or are specifically related to the Lambda executable object type. Each function, method, and global variable has its own section. The sections are listed in alphabetic order. In the next sections, we have also included several Lisp special forms which illustrate general features and properties of Lambda objects.

++++=//=
**=----=
abortTransactionabsacosadd1addMethod
addiappendappendWritelnapplyargCount
argFetchargumentarithmeticasinassociate
atanattachLibrarianavgbaddbalance
bcompareEQbcompareGEbcompareGTbcompareLEbcompareLT
bcompareNEbdivbeginTransactionbinaryInsertbinaryNand
binaryNorbinaryNotbinaryNxorbinarySearchbitToIntegerVector
bitToNumberVectorbitwiseAndbitwiseNandbitwiseNorbitwiseNot
bitwiseNxorbitwiseOrbitwiseShiftLeftbitwiseShiftRightbitwiseXor
bmodbmulbooleanc::rcadd
callcccarccompareEQccompareGEccompareGT
ccompareLEccompareLTccompareNEcdivcdr
charcharactercheckEscapecheckPointTransactionclass
cleanclearcloseLogcmodcmul
codecommitTransactioncomparecompareEQcompareGE
compareGTcompareLEcompareLTcompareNEcomparison
compilecomplexcompressconjugatecons
copycoscoshcountcsub
datedaydays360debugdebugBrowsableProcs
debugDetectivedebugEvaldecodedefchilddefclass
definedefine(macro)defineStructuredefmacrodefmethod
deforphandefrienddefstructdefundeg
deletedeleteRowsdetachLibrariandimensiondisassemble
displaydividowncaseencodeerror
errorTrapevalevalInSyncLocalContextexitexp
exportCsvexportSbfexportTabexptfact
fdisplayfieldsOffileClosefileCopyfileDir
fileDisplayfileErasefileEraseDirfileExistsfileMakeDir
fileOpenfileReadfileReadAllfileReadRecordfileResize
fileSeekfileSizeOffileWritefileWriteAllfilewriteln
findfindBlockfloorfractionfreeBlock
gcgcdgetGlobalValuegetRecursionCountgetSymbolTable
getTickCountglobalBindinghashStringhouriadd
icompareEQicompareGEicompareGTicompareLEicompareLT
icompareNEidivimaginaryimodimportCsv
importSbfimportTabimulinsertinsertRows
insideinspectintegerisAtomisBitVector
isBooleanisBoundisByteVectorisCharisCharAlphabetic
isCharAlphanumericisCharLowercaseisCharNameisCharNumericisCharUppercase
isCharWhitespaceisCharacterisClassisComplexisDate
isDictionaryisDirectoryisEqualisErrorisEven
isExactisFloatVectorisIdenticalisImmediateisInexact
isInsideisIntegerisIntegerVectorisLambdaisMatrix
isMemberisMoneyisNegativeisNullisNumber
isNumberMatrixisNumberVectorisObjectisObjectVectorisOdd
isPairisPcodeVectorisPositiveisStringisStructure
isSymbolisTextisTransactionisTypeisVector
isZeroisubjuliankurtosislambda
lastlcmleftlengthlisp
listloadModuleloadObjectloadRepositoryloadWorkspace
lockloglog10log2logConsole
logbasemacroReplacemakeDictionarymakeGaussianMatrixmakeGramMatrix
makeLambdamakeQuotedListmakeQuotedSymbolmakeStructuremap
mapcmatrixGaussianEliminatematrixGaussianSubstitutemaxmedian
membermethodsOfmidminminute
modmodimoneymonthmorph
mulimyselfnaddncompareEQncompareGE
ncompareGTncompareLEncompareLTncompareNEndiv
newnmodnmulnownsub
numberobjectToDictionaryobjectToDirectoryobjectToListobjectToMatrix
objectToNumMatrixobjectToNumVectorobjectToStructureobjectToVectoroffset
onErroropenLogpairparentparse
pipointerpreAllocateFixedMemoryBlocksproductproplist
proprecordputpropqtquitquote
radrandomrandomizerangerank
realrefrefAttributesrefLibrarianrefValues
remPropremoverenamereplacerept
resetresizereverserightround
runsaveImmediatesaveModulesaveObjectsaveRepository
saveWorkspacesecondsendsetsetAttributes
setBlocksetCarsetCdrsetLastCdrsetf
setqsigmoidsignsinsinh
sizeofskewsleepsortsql
sqrtsrandomstdevstdevpstring
stringCiEQstringCiGEstringCiGTstringCiLEstringCiLT
stringCiNEstringFillstringToBVectorstringToVectorsub1
subisubmitsubstitutesubstringsubstringCiEQ
substringCiGEsubstringCiGTsubstringCiLEsubstringCiLTsubstringCiNE
substringEQsubstringFillsubstringGEsubstringGTsubstringLE
substringLTsubstringNEsumsumsqrsuper
svmRegressionsymbolsymbolToTypeCodesysErrorsystem
systemChecktantanhtexttime
todaytrimtypeuncompressuniqueInsert
unlockupcasevarvarpvectorBinaryInnerProduct
vectorBipolarInnerProductvectorCosineInnerProductvectorCubeInnerProductvectorDeletevectorExpInnerProduct
vectorFillvectorInnerProductvectorLogInnerProductvectorQuartInnerProductvectorQuintInnerProduct
vectorSigmoidInnerProductvectorSineInnerProductvectorSquareInnerProductvectorTanInnerProductvectorTanhInnerProduct
versionwritelgwritelnyear