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.

BitVectorBooleanByteVectorCharacterComplex
CpxVectorDateDictionaryDirectoryError
FltVectorFunctionIntegerIntVectorLambda
ListLongVectorMatrixNumberNumMatrix
NumVectorObjectRepositoryObjVectorPairShortVector
StringStructureSymbolTextVector
Void

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.

+ : (Complex Number)
++
+=
/ : (Complex Number)
/=
* : (Complex Number)
*=
- : (Complex Number)
--
-=
abortTransaction
abs : (Complex Number)
acos
add1
addMethod : (BitVector Boolean Brick Character CpxVector Date Dictionary Directory FltVector Function IntVector List Matrix NumMatrix NumVector Number ObjVector ObjectRepository Pair PcodeVector ShortVector String Structure Symbol Vector Void)
addi
append : (BitVector Complex CpxVector FltVector IntVector Matrix NumMatrix NumVector ObjVector Pair ShortVector String Structure Symbol Vector)
appendWriteln
apply : (BitVector CpxVector FltVector IntVector Matrix NumMatrix NumVector Pair ShortVector Structure Vector)
argCount
argFetch
argument
arithmetic
asin
associate
atan
attachLibrarian
avg : (CpxVector Number)
badd
balance
bcompareEQ
bcompareGE
bcompareGT
bcompareLE
bcompareLT
bcompareNE
bdiv
beginTransaction
binaryInsert : (CpxVector FltVector IntVector Matrix NumMatrix NumVector ShortVector Structure Vector)
binaryNand
binaryNor
binaryNot
binaryNxor
binarySearch : (CpxVector Dictionary FltVector IntVector Matrix NumMatrix NumVector ObjVector ShortVector Structure Vector)
bitToIntegerVector : (BitVector IntVector)
bitToNumberVector : (BitVector NumVector)
bitwiseAnd
bitwiseNand
bitwiseNor
bitwiseNot
bitwiseNxor
bitwiseOr
bitwiseShiftLeft
bitwiseShiftRight
bitwiseXor
bmod
bmul
boolean
c..r
cadd
callcc
car : (List Pair)
ccompareEQ
ccompareGE
ccompareGT
ccompareLE
ccompareLT
ccompareNE
cdiv
cdr : (BitVector Brick CpxVector Dictionary Directory FltVector IntVector List Matrix NumMatrix NumVector ObjVector ShortVector Structure Vector)
char
character
checkPointTransaction
clean
clear : (Context ObjectRepository)
closeLog
cmod
cmul
code
commitTransaction
compare : (BitVector Boolean Brick Character Complex CpxVector Date Dictionary Directory FltVector Function IntVector Lambda List Matrix NumMatrix NumVector Number ObjVector ObjectRepository Pair ShortVector String Structure Symbol Vector Void)
compareEQ : (BitVector Boolean Brick Character Complex CpxVector Date Dictionary Directory FltVector Function IntVector Lambda List Matrix NumMatrix NumVector Number ObjVector ObjectRepository Pair ShortVector String Structure Symbol Vector Void)
compareGE : (BitVector Boolean Brick Character Complex CpxVector Date Dictionary Directory Function IntVector Lambda List Matrix NumMatrix Number ObjVector ObjectRepository Pair ShortVector String Structure Symbol Vector Void)
compareGT : (BitVector Boolean Brick Character Complex CpxVector Date Dictionary Directory Function IntVector Lambda List Matrix NumMatrix NumVector Number ObjVector ObjectRepository Pair ShortVector String Structure Symbol Vector Void)
compareLE : (BitVector Boolean Brick Character Complex CpxVector Date Dictionary Directory FltVector Function IntVector Lambda List Matrix NumMatrix NumVector Number ObjVector ObjectRepository Pair ShortVector String Structure Symbol Vector Void)
compareLT : (BitVector Boolean Brick Character Complex CpxVector Date Dictionary Directory FltVector Function IntVector Lambda List Matrix NumMatrix NumVector Number ObjVector ObjectRepository Pair ShortVector String Structure Symbol Vector Void)
compareNE : (BitVector Boolean Brick Character Complex CpxVector Date Dictionary Directory FltVector Function IntVector Lambda List Matrix NumMatrix NumVector Number ObjVector ObjectRepository Pair ShortVector String Structure Symbol Vector Void)
comparison : (BitVector Boolean Brick Character Complex Date Dictionary Directory FltVector Function IntVector List Matrix NumMatrix NumVector Number ObjVector ObjectRepository Pair ShortVector String Structure Symbol Vector Void)
compile : (Lambda List)
complex
compress
conjugate
cons
copy : (BitVector Brick CpxVector Dictionary Directory FltVector IntVector Lambda List Matrix NumMatrix NumVector ObjVector Pair PcodeVector ShortVector Structure Vector)
cos : (Complex Number)
cosh
count : (Dictionary Directory List Matrix NumMatrix Pair Structure Vector)
csub
date
day
days360
debug : (Context Lambda)
debugBrowsableProcs : (Context Lambda)
debugDialog
decode
defchild
define
define(macro)
defineStructure
defmacro
defmethod : (BitVector Boolean Brick Character Date Dictionary Directory FltVector Function IntVector List Matrix NumMatrix NumVector Number ObjectRepository Pair ShortVector String Structure Symbol Vector Void)
deforphan
defriend
defstruct
defun
deg
delete : (Dictionary Directory FltVector IntVector List Matrix NumMatrix NumVector ObjVector ObjectRepository Pair ShortVector Structure Vector)
deleteRows
detachLibrarian
disassemble : (Context Lambda)
display : (ByteVector FileIO)
divi
downcase : (String Symbol)
encode
error
errorTrap
eval : (Lambda List)
evalInSyncLocalContext
exp : (Complex Number)
exportTab : (Lambda ObjectRepository)
expt : (Complex Number)
fact : (Integer Number)
fdisplay : (ByteVector Text)
fieldsOf
fileClose : (ByteVector Text)
fileDisplay : (ByteVector Text)
fileErase : (ByteVector Text)
fileOpen : (ByteVector Text)
fileRead : (ByteVector Text)
fileReadRecord : (ByteVector String Text)
fileResize : (ByteVector String Text)
fileSeek : (ByteVector String Text)
fileWrite : (ByteVector String Text)
filewriteln : (ByteVector String Text)
find
findBlock
floor
fraction
freeBlock
gc
gcd : (Integer Number)
getContextPtr
getGlobalValue : (Context Symbol)
getHttp : (String Text)
getSymbolTable : (Context Symbol)
getTickCount
globalBinding : (Context Lambda)
hashString : (String Symbol)
hour
iadd
icompareEQ
icompareGE
icompareGT
icompareLE
icompareLT
icompareNE
idiv
imaginary
imod
importTab : (Lambda ObjectRepository)
imul
insert : (Dictionary Directory FltVector IntVector Matrix NumMatrix NumVector ObjVector ShortVector Structure Vector)
insertRows
inside : (BitVector Dictionary Directory IntVector List Matrix NumMatrix NumVector ShortVector Structure Vector)
inspect : (Context Lambda ObjectRepository)
integer
isAtom : (BitVector Brick Dictionary Directory FltVector IntVector List Matrix NumMatrix NumVector ObjVector Pair PcodeVector ShortVector Structure Vector)
isBitVector
isBoolean
isBound : (Dictionary Directory Structure)
isByteVector
isChar
isCharAlphabetic : (ByteVector String Symbol)
isCharAlphanumeric : (ByteVector String Symbol)
isCharLowercase : (ByteVector String Symbol)
isCharName : (ByteVector String Symbol)
isCharNumeric : (ByteVector String Symbol)
isCharUppercase : (ByteVector String Symbol)
isCharWhitespace : (ByteVector String Symbol)
isCharacter
isComplex
isDate
isDictionary
isDirectory
isEqual : (BitVector Boolean Brick Character Complex Date Dictionary Directory FltVector Function IntVector List Matrix NumMatrix NumVector Number ObjVector Pair ShortVector String Structure Vector Void)
isError
isEven
isExact
isFloatVector
isIdentical : (BitVector Boolean Brick Character Complex Date Dictionary Directory Error FltVector Function IntVector List Matrix NumMatrix NumVector Number ObjVector ObjectRepository Pair PcodeVector ShortVector Structure Vector Void)
isImmediate
isInexact
isInside : (BitVector Dictionary Directory IntVector List Matrix NumMatrix NumVector ObjVector Pair ShortVector Structure Vector)
isInteger
isIntegerVector
isMatrix
isMember : (BitVector Dictionary Directory IntVector List Matrix NumMatrix NumVector ObjVector Pair ShortVector Structure Vector)
isMoney
isNegative
isNull : (Number Void)
isNumber
isNumberMatrix
isNumberVector
isObject : (BitVector Brick ByteVector Dictionary Directory FltVector IntVector List Matrix NumMatrix NumVector ObjVector Pair PcodeVector ShortVector String Structure Symbol Vector)
isObjectVector
isOdd
isPair : (List Pair)
isPcodeVector
isPositive
isString
isStructure
isSymbol
isText
isTransaction
isType : (BitVector Boolean Brick Character Complex Date Dictionary Directory FltVector Function IntVector Matrix NumMatrix NumVector Number ObjVector ObjectRepository Pair ShortVector String Structure Symbol Vector Void)
isVector
isZero
isub
julian
kurtosis
lambda
last
lcm
left
length : (BitVector Brick Dictionary Directory FltVector IntVector List Matrix NumMatrix NumVector ObjVector ObjectRepository Pair PcodeVector ShortVector String Structure Symbol Vector)
lisp : (Lambda List)
list
loadLib
loadObject
loadRepository
loadWorkspace
log : (Complex Number)
log10 : (Complex Number)
log2 : (Complex Number)
logbase : (Complex Number)
macroReplace
makeDictionary
makeGaussianMatrix
makeGramMatrix
makeLambda
makeQuotedList
makeQuotedSymbol
makeStructure
map : (Dictionary Directory FltVector IntVector List Matrix NumMatrix NumVector Pair ShortVector Structure Vector)
mapc : (Dictionary Directory FltVector IntVector List Matrix NumMatrix NumVector Pair ShortVector Structure Vector)
matrixGaussianEliminate
matrixGaussianSubstitute
max
median
member : (BitVector Dictionary Directory IntVector List Matrix NumMatrix NumVector ObjVector ShortVector Structure Vector)
methodsOf : (BitVector Boolean Brick Character Complex Date Dictionary Directory FltVector Function IntVector List Matrix NumMatrix NumVector Number ObjVector ObjectRepository Pair PcodeVector ShortVector String Structure Symbol Vector Void)
mid
min
minute
mod : (Complex Number)
modi
money
month
morph
muli
myself
nadd
ncompareEQ
ncompareGE
ncompareGT
ncompareLE
ncompareLT
ncompareNE
ndiv
new : (BitVector Brick ByteVector CpxVector Dictionary Directory FltVector IntVector Lambda Matrix NumMatrix NumVector ObjVector ObjectRepository PcodeVector ShortVector String Structure Symbol Vector)
nmod
nmul
now
nsub
number
objectToDictionary
objectToDirectory
objectToList
objectToMatrix
objectToNumMatrix
objectToNumVector
objectToStructure
objectToVector
onError : (Error Lambda)
openLog : (FileIO String)
pair
parse
pi
postHttp : (String Text)
preAllocateFixedMemoryBlocks
product
proplist
proprecord
putprop
quote
rad
random
randomize
range
rank : (Matrix NumMatrix)
readHtmlPage : (String Text)
real
ref : (BitVector Boolean Brick Character Complex Date Dictionary Directory FltVector Function IntVector Lambda List Matrix NumMatrix NumVector Number ObjVector ObjectRepository PcodeVector ShortVector String Structure Symbol Vector Void)
refAttributes : (Dictionary Directory Structure Vector)
refLibrarian
refValues : (Dictionary Directory Structure Vector)
remProp
remove : (BitVector Dictionary Directory IntVector Matrix NumMatrix NumVector ObjVector ShortVector Structure Vector)
rename
replace
rept
requestHttp : (String Text)
reset
resize : (BitVector Dictionary Directory FltVector IntVector Matrix NumMatrix NumVector ObjVector ShortVector Structure Vector)
reverse : (BitVector FltVector IntVector List Matrix NumMatrix NumVector ObjVector ShortVector Vector)
right
round
run : (ByteVector Text)
saveImmediate
saveObject : (ByteVector Integer)
saveRepository
saveWorkspace
second
send : (BitVector Boolean Brick Character CpxVector Date Dictionary Directory FltVector Function IntVector Lambda List Matrix NumMatrix NumVector Number ObjectRepository Pair ShortVector String Structure Symbol Vector Void)
set
setAttributes : (Dictionary Directory Structure Vector)
setBlock
setCar : (List Pair)
setCdr : (BitVector Brick Dictionary Directory FltVector IntVector List Matrix NumMatrix NumVector ObjVector Pair ShortVector Structure Vector)
setLastCdr : (BitVector FltVector IntVector List Matrix NumMatrix NumVector ObjVector Structure Vector)
setf
setq : (BitVector Boolean Brick Character Date Dictionary Directory FltVector IntVector Lambda List Matrix NumVector Number ObjVector ObjectRepository PcodeVector ShortVector String Structure Symbol Vector Void)
sign
sin : (Complex Number)
sinh
sizeof : (BitVector Boolean Brick ByteVector Character Complex Date Dictionary Directory FltVector Function IntVector List Matrix NumMatrix NumVector Number ObjVector ObjectRepository Pair PcodeVector ShortVector String Structure Symbol Vector Void)
skew
sort : (BitVector Dictionary Directory FltVector IntVector List Matrix NumMatrix NumVector ObjVector ShortVector Structure Vector)
sqrt : (Complex Number)
srandom
stdev
stdevp
string : (Complex String)
stringCiEQ
stringCiGE
stringCiGT
stringCiLE
stringCiLT
stringCiNE
stringFill
stringToBVector
stringToVector
sub1
subi
submit
subscribe
substitute
substring
substringCiEQ
substringCiGE
substringCiGT
substringCiLE
substringCiLT
substringCiNE
substringEQ
substringFill
substringGE
substringGT
substringLE
substringLT
substringNE
sum : (Complex Number)
sumsqr : (Complex Number)
svmRegression
symbol
system : (ByteVector Text)
systemCheck
tan : (Complex Number)
tanh
testFunction
text
time
today
trim
type : (BitVector Boolean Brick ByteVector Character Complex Date Dictionary Directory FltVector Function IntVector Lambda Matrix NumMatrix NumVector Number ObjVector ObjectRepository Pair PcodeVector ShortVector String Structure Symbol Vector Void)
uncompress
uniqueInsert : (FltVector IntVector Matrix NumMatrix NumVector ObjVector ShortVector Structure Vector)
upcase : (String Symbol)
var
varp
vectorBinaryInnerProduct
vectorBipolarInnerProduct
vectorCosineInnerProduct
vectorCubeInnerProduct
vectorDelete
vectorExpInnerProduct
vectorFill : (BitVector FltVector IntVector Matrix NumMatrix NumVector ObjVector ShortVector Vector)
vectorInnerProduct
vectorLogInnerProduct
vectorQuartInnerProduct
vectorQuintInnerProduct
vectorSigmoidInnerProduct
vectorSineInnerProduct
vectorSquareInnerProduct
vectorTanInnerProduct
vectorTanhInnerProduct
version
writeln : (ByteVector String Text)
year