defineStructure

 

 

Description

The defineStructure function creates and initializes a new object type {newType} with the specified field names {fieldnames}. There may be one or more field names. The new type created by defineStructure can inherit from another object by specifying the include: keyword and the name of the parent object {parentName}.

The new object type, {newType}, can be assigned methods and which define the messages that the object will respond.

The function defclass is a synonym for the defineStructure function.

When to use

The defineStructure function is a mechanism for adding user-defined types to the Analytic Information Server workbench. The defineStructure function brings the conventional object-oriented paradigm to the Analytic Information Server workbench. The defineStructure describes a template for the new type object. The object is not instantiated until the constructor function is invoked. The new type can inherit field names (analogous to OOP properties or members) and methods by using the include: syntax.

 

Syntax

(defineStructure newType include: parentName 'fieldnames...)
(defclass newType include: parentName 'fieldnames...)



Name Description AIS Types
newTypeA symbolic name for the new object typeString or Text
include:An optional keyword. If present, it must be followed by an existing object type
parentNameIf the include: keyword is present, it must be followed by an existing object type nameString or Text
'fieldnamesOne or more field names that is to be associated with the object type String or Text


Returns:

The name of the new object type (as a symbol).

 

Examples

Here are a number of links to Lambda coding examples which contain this instruction in various use cases.

Example_Structure_defineStructure_001

This example defines a new type Structure name using the defineStrucutre function with the properties name, job, salary.

Example_Structure_defineStructure_002

This example defines a new type object type name using the defineStrucutre function. This new object type inherits the the previously define employee object type.

Example_Structure_defineStructure_003

This example defines a method to be associated with the employee object type as defined in the previous example. Such method is invoked by an object of the employee type.

 

Argument Types

Here are the links to the data types of the function arguments.

Structure

Here are also a number of links to functions having arguments with any of these data types.

addMethod(BitVector) addMethod(Boolean) addMethod(Brick) addMethod(Character)
addMethod(CpxVector) addMethod(Date) addMethod(Dictionary) addMethod(Directory)
addMethod(FltVector) addMethod(Function) addMethod(IntVector) addMethod(List)
addMethod(Matrix) addMethod(NumMatrix) addMethod(NumVector) addMethod(Number)
addMethod(ObjVector) addMethod(ObjectRepository) addMethod(Pair) addMethod(PcodeVector)
addMethod(ShortVector) addMethod(String) addMethod(Structure) addMethod(Symbol)
addMethod(Vector) addMethod(Void) append(BitVector) append(Complex)
append(CpxVector) append(FltVector) append(IntVector) append(Matrix)
append(NumMatrix) append(NumVector) append(ObjVector) append(Pair)
append(ShortVector) append(String) append(Structure) append(Symbol)
append(Vector) apply(BitVector) apply(CpxVector) apply(FltVector)
apply(IntVector) apply(Matrix) apply(NumMatrix) apply(NumVector)
apply(Pair) apply(ShortVector) apply(Structure) apply(Vector)
binaryInsert(CpxVector) binaryInsert(FltVector) binaryInsert(IntVector) binaryInsert(Matrix)
binaryInsert(NumMatrix) binaryInsert(NumVector) binaryInsert(ShortVector) binaryInsert(Structure)
binaryInsert(Vector) boolean(Boolean) cdr(BitVector) cdr(Brick)
cdr(CpxVector) cdr(Dictionary) cdr(Directory) cdr(FltVector)
cdr(IntVector) cdr(List) cdr(Matrix) cdr(NumMatrix)
cdr(NumVector) cdr(ObjVector) cdr(ShortVector) cdr(Structure)
cdr(Vector) character(Character) compareEQ(BitVector) compareEQ(Boolean)
compareEQ(Brick) compareEQ(Character) compareEQ(Complex) compareEQ(CpxVector)
compareEQ(Date) compareEQ(Dictionary) compareEQ(Directory) compareEQ(FltVector)
compareEQ(Function) compareEQ(IntVector) compareEQ(Lambda) compareEQ(List)
compareEQ(Matrix) compareEQ(NumMatrix) compareEQ(NumVector) compareEQ(Number)
compareEQ(ObjVector) compareEQ(ObjectRepository) compareEQ(Pair) compareEQ(ShortVector)
compareEQ(String) compareEQ(Structure) compareEQ(Symbol) compareEQ(Vector)
compareEQ(Void) compareGE(BitVector) compareGE(Boolean) compareGE(Brick)
compareGE(Character) compareGE(Complex) compareGE(CpxVector) compareGE(Date)
compareGE(Dictionary) compareGE(Directory) compareGE(Function) compareGE(IntVector)
compareGE(Lambda) compareGE(List) compareGE(Matrix) compareGE(NumMatrix)
compareGE(Number) compareGE(ObjVector) compareGE(ObjectRepository) compareGE(Pair)
compareGE(ShortVector) compareGE(String) compareGE(Structure) compareGE(Symbol)
compareGE(Vector) compareGE(Void) compareGT(BitVector) compareGT(Boolean)
compareGT(Brick) compareGT(Character) compareGT(Complex) compareGT(CpxVector)
compareGT(Date) compareGT(Dictionary) compareGT(Directory) compareGT(Function)
compareGT(IntVector) compareGT(Lambda) compareGT(List) compareGT(Matrix)
compareGT(NumMatrix) compareGT(NumVector) compareGT(Number) compareGT(ObjVector)
compareGT(ObjectRepository) compareGT(Pair) compareGT(ShortVector) compareGT(String)
compareGT(Structure) compareGT(Symbol) compareGT(Vector) compareGT(Void)
compareLE(BitVector) compareLE(Boolean) compareLE(Brick) compareLE(Character)
compareLE(Complex) compareLE(CpxVector) compareLE(Date) compareLE(Dictionary)
compareLE(Directory) compareLE(FltVector) compareLE(Function) compareLE(IntVector)
compareLE(Lambda) compareLE(List) compareLE(Matrix) compareLE(NumMatrix)
compareLE(NumVector) compareLE(Number) compareLE(ObjVector) compareLE(ObjectRepository)
compareLE(Pair) compareLE(ShortVector) compareLE(String) compareLE(Structure)
compareLE(Symbol) compareLE(Vector) compareLE(Void) compareLT(BitVector)
compareLT(Boolean) compareLT(Brick) compareLT(Character) compareLT(Complex)
compareLT(CpxVector) compareLT(Date) compareLT(Dictionary) compareLT(Directory)
compareLT(FltVector) compareLT(Function) compareLT(IntVector) compareLT(Lambda)
compareLT(List) compareLT(Matrix) compareLT(NumMatrix) compareLT(NumVector)
compareLT(Number) compareLT(ObjVector) compareLT(ObjectRepository) compareLT(Pair)
compareLT(ShortVector) compareLT(String) compareLT(Structure) compareLT(Symbol)
compareLT(Vector) compareLT(Void) compareNE(BitVector) compareNE(Boolean)
compareNE(Brick) compareNE(Character) compareNE(Complex) compareNE(CpxVector)
compareNE(Date) compareNE(Dictionary) compareNE(Directory) compareNE(FltVector)
compareNE(Function) compareNE(IntVector) compareNE(Lambda) compareNE(List)
compareNE(Matrix) compareNE(NumMatrix) compareNE(NumVector) compareNE(Number)
compareNE(ObjVector) compareNE(ObjectRepository) compareNE(Pair) compareNE(ShortVector)
compareNE(String) compareNE(Structure) compareNE(Symbol) compareNE(Vector)
compareNE(Void) compare(BitVector) compare(Boolean) compare(Brick)
compare(Character) compare(Complex) compare(CpxVector) compare(Date)
compare(Dictionary) compare(Directory) compare(FltVector) compare(Function)
compare(IntVector) compare(Lambda) compare(List) compare(Matrix)
compare(NumMatrix) compare(NumVector) compare(Number) compare(ObjVector)
compare(ObjectRepository) compare(Pair) compare(ShortVector) compare(String)
compare(Structure) compare(Symbol) compare(Vector) compare(Void)
comparison(BitVector) comparison(Boolean) comparison(Brick) comparison(Character)
comparison(Complex) comparison(Date) comparison(Dictionary) comparison(Directory)
comparison(FltVector) comparison(Function) comparison(IntVector) comparison(List)
comparison(Matrix) comparison(NumMatrix) comparison(NumVector) comparison(Number)
comparison(ObjVector) comparison(ObjectRepository) comparison(Pair) comparison(ShortVector)
comparison(String) comparison(Structure) comparison(Symbol) comparison(Vector)
comparison(Void) cons(Pair) copy(BitVector) copy(Brick)
copy(CpxVector) copy(Dictionary) copy(Directory) copy(FltVector)
copy(IntVector) copy(Lambda) copy(List) copy(Matrix)
copy(NumMatrix) copy(NumVector) copy(ObjVector) copy(Pair)
copy(PcodeVector) copy(ShortVector) copy(Structure) copy(Vector)
count(Dictionary) count(Directory) count(List) count(Matrix)
count(NumMatrix) count(Pair) count(Structure) count(Vector)
defineStructure(Structure) defstruct(Structure) delete(Dictionary) delete(Directory)
delete(FltVector) delete(IntVector) delete(List) delete(Matrix)
delete(NumMatrix) delete(NumVector) delete(ObjVector) delete(ObjectRepository)
delete(Pair) delete(ShortVector) delete(Structure) delete(Vector)
display(ByteVector) display(FileIO) exportTab(Lambda) exportTab(ObjectRepository)
fieldsOf(Structure) importTab(Lambda) importTab(ObjectRepository) insert(Dictionary)
insert(Directory) insert(FltVector) insert(IntVector) insert(Matrix)
insert(NumMatrix) insert(NumVector) insert(ObjVector) insert(ShortVector)
insert(Structure) insert(Vector) inside(BitVector) inside(Dictionary)
inside(Directory) inside(IntVector) inside(List) inside(Matrix)
inside(NumMatrix) inside(NumVector) inside(ShortVector) inside(Structure)
inside(Vector) integer(Integer) isAtom(BitVector) isAtom(Brick)
isAtom(Dictionary) isAtom(Directory) isAtom(FltVector) isAtom(IntVector)
isAtom(List) isAtom(Matrix) isAtom(NumMatrix) isAtom(NumVector)
isAtom(ObjVector) isAtom(Pair) isAtom(PcodeVector) isAtom(ShortVector)
isAtom(Structure) isAtom(Vector) isBitVector(BitVector) isBoolean(Boolean)
isBound(Dictionary) isBound(Directory) isBound(Structure) isByteVector(ByteVector)
isChar(String) isCharacter(Character) isComplex(Complex) isDate(Date)
isDictionary(Dictionary) isDirectory(Directory) isEqual(BitVector) isEqual(Boolean)
isEqual(Brick) isEqual(Character) isEqual(Complex) isEqual(Date)
isEqual(Dictionary) isEqual(Directory) isEqual(FltVector) isEqual(Function)
isEqual(IntVector) isEqual(List) isEqual(Matrix) isEqual(NumMatrix)
isEqual(NumVector) isEqual(Number) isEqual(ObjVector) isEqual(Pair)
isEqual(ShortVector) isEqual(String) isEqual(Structure) isEqual(Vector)
isEqual(Void) isError(Error) isFloatVector(FltVector) isIdentical(BitVector)
isIdentical(Boolean) isIdentical(Brick) isIdentical(Character) isIdentical(Complex)
isIdentical(Date) isIdentical(Dictionary) isIdentical(Directory) isIdentical(Error)
isIdentical(FltVector) isIdentical(Function) isIdentical(IntVector) isIdentical(List)
isIdentical(Matrix) isIdentical(NumMatrix) isIdentical(NumVector) isIdentical(Number)
isIdentical(ObjVector) isIdentical(ObjectRepository) isIdentical(Pair) isIdentical(PcodeVector)
isIdentical(ShortVector) isIdentical(Structure) isIdentical(Vector) isIdentical(Void)
isInside(BitVector) isInside(Dictionary) isInside(Directory) isInside(IntVector)
isInside(List) isInside(Matrix) isInside(NumMatrix) isInside(NumVector)
isInside(ObjVector) isInside(Pair) isInside(ShortVector) isInside(Structure)
isInside(Vector) isIntegerVector(IntVector) isInteger(Integer) isMatrix(Matrix)
isMember(BitVector) isMember(Dictionary) isMember(Directory) isMember(IntVector)
isMember(List) isMember(Matrix) isMember(NumMatrix) isMember(NumVector)
isMember(ObjVector) isMember(Pair) isMember(ShortVector) isMember(Structure)
isMember(Vector) isMoney(Number) isNumberMatrix(NumMatrix) isNumberVector(NumVector)
isNumber(Number) isObjectVector(ObjVector) isObject(BitVector) isObject(Brick)
isObject(ByteVector) isObject(Dictionary) isObject(Directory) isObject(FltVector)
isObject(IntVector) isObject(List) isObject(Matrix) isObject(NumMatrix)
isObject(NumVector) isObject(ObjVector) isObject(Pair) isObject(PcodeVector)
isObject(ShortVector) isObject(String) isObject(Structure) isObject(Symbol)
isObject(Vector) isPair(List) isPair(Pair) isPcodeVector(PcodeVector)
isString(String) isStructure(Structure) isSymbol(Symbol) isText(String)
isType(BitVector) isType(Boolean) isType(Brick) isType(Character)
isType(Complex) isType(Date) isType(Dictionary) isType(Directory)
isType(FltVector) isType(Function) isType(IntVector) isType(Matrix)
isType(NumMatrix) isType(NumVector) isType(Number) isType(ObjVector)
isType(ObjectRepository) isType(Pair) isType(ShortVector) isType(String)
isType(Structure) isType(Symbol) isType(Vector) isType(Void)
isVector(Vector) length(BitVector) length(Brick) length(Dictionary)
length(Directory) length(FltVector) length(IntVector) length(List)
length(Matrix) length(NumMatrix) length(NumVector) length(ObjVector)
length(ObjectRepository) length(Pair) length(PcodeVector) length(ShortVector)
length(String) length(Structure) length(Symbol) length(Vector)
list(List) macroReplace(String) makeQuotedList(List) makeStructure(Structure)
map(Dictionary) map(Directory) map(FltVector) map(IntVector)
map(List) map(Matrix) map(NumMatrix) map(NumVector)
map(Pair) map(ShortVector) map(Structure) map(Vector)
mapc(Dictionary) mapc(Directory) mapc(FltVector) mapc(IntVector)
mapc(List) mapc(Matrix) mapc(NumMatrix) mapc(NumVector)
mapc(Pair) mapc(ShortVector) mapc(Structure) mapc(Vector)
member(BitVector) member(Dictionary) member(Directory) member(IntVector)
member(List) member(Matrix) member(NumMatrix) member(NumVector)
member(ObjVector) member(ShortVector) member(Structure) member(Vector)
money(Number) new(BitVector) new(Brick) new(ByteVector)
new(CpxVector) new(Dictionary) new(Directory) new(FltVector)
new(IntVector) new(Lambda) new(Matrix) new(NumMatrix)
new(NumVector) new(ObjVector) new(ObjectRepository) new(PcodeVector)
new(ShortVector) new(String) new(Structure) new(Symbol)
new(Vector) number(Number) objectToList(List) objectToMatrix(Matrix)
objectToNumMatrix(NumMatrix) objectToNumVector(NumVector) objectToStructure(Structure) objectToVector(Vector)
pair(Pair) parse(String) postHttp(String) postHttp(Text)
proprecord(Symbol) putprop(Symbol) refAttributes(Dictionary) refAttributes(Directory)
refAttributes(Structure) refAttributes(Vector) refValues(Dictionary) refValues(Directory)
refValues(Structure) refValues(Vector) ref(BitVector) ref(Boolean)
ref(Brick) ref(Character) ref(Complex) ref(Date)
ref(Dictionary) ref(Directory) ref(FltVector) ref(Function)
ref(IntVector) ref(Lambda) ref(List) ref(Matrix)
ref(NumMatrix) ref(NumVector) ref(Number) ref(ObjVector)
ref(ObjectRepository) ref(PcodeVector) ref(ShortVector) ref(String)
ref(Structure) ref(Symbol) ref(Vector) ref(Void)
remProp(Symbol) remove(BitVector) remove(Dictionary) remove(Directory)
remove(IntVector) remove(Matrix) remove(NumMatrix) remove(NumVector)
remove(ObjVector) remove(ShortVector) remove(Structure) remove(Vector)
resize(BitVector) resize(Dictionary) resize(Directory) resize(FltVector)
resize(IntVector) resize(Matrix) resize(NumMatrix) resize(NumVector)
resize(ObjVector) resize(ShortVector) resize(Structure) resize(Vector)
saveObject(ByteVector) saveObject(Integer) send(BitVector) send(Boolean)
send(Brick) send(Character) send(CpxVector) send(Date)
send(Dictionary) send(Directory) send(FltVector) send(Function)
send(IntVector) send(Lambda) send(List) send(Matrix)
send(NumMatrix) send(NumVector) send(Number) send(ObjectRepository)
send(Pair) send(ShortVector) send(String) send(Structure)
send(Symbol) send(Vector) send(Void) setCar(List)
setCar(Pair) setCdr(BitVector) setCdr(Brick) setCdr(Dictionary)
setCdr(Directory) setCdr(FltVector) setCdr(IntVector) setCdr(List)
setCdr(Matrix) setCdr(NumMatrix) setCdr(NumVector) setCdr(ObjVector)
setCdr(Pair) setCdr(ShortVector) setCdr(Structure) setCdr(Vector)
setLastCdr(BitVector) setLastCdr(FltVector) setLastCdr(IntVector) setLastCdr(List)
setLastCdr(Matrix) setLastCdr(NumMatrix) setLastCdr(NumVector) setLastCdr(ObjVector)
setLastCdr(Structure) setLastCdr(Vector) setq(BitVector) setq(Boolean)
setq(Brick) setq(Character) setq(Date) setq(Dictionary)
setq(Directory) setq(FltVector) setq(IntVector) setq(Lambda)
setq(List) setq(Matrix) setq(NumVector) setq(Number)
setq(ObjVector) setq(ObjectRepository) setq(PcodeVector) setq(ShortVector)
setq(String) setq(Structure) setq(Symbol) setq(Vector)
setq(Void) sizeof(BitVector) sizeof(Boolean) sizeof(Brick)
sizeof(ByteVector) sizeof(Character) sizeof(Complex) sizeof(Date)
sizeof(Dictionary) sizeof(Directory) sizeof(FltVector) sizeof(Function)
sizeof(IntVector) sizeof(List) sizeof(Matrix) sizeof(NumMatrix)
sizeof(NumVector) sizeof(Number) sizeof(ObjVector) sizeof(ObjectRepository)
sizeof(Pair) sizeof(PcodeVector) sizeof(ShortVector) sizeof(String)
sizeof(Structure) sizeof(Symbol) sizeof(Vector) sizeof(Void)
sort(BitVector) sort(Dictionary) sort(Directory) sort(FltVector)
sort(IntVector) sort(List) sort(Matrix) sort(NumMatrix)
sort(NumVector) sort(ObjVector) sort(ShortVector) sort(Structure)
sort(Vector) string(Complex) string(String) svmRegression(Vector)
type(BitVector) type(Boolean) type(Brick) type(ByteVector)
type(Character) type(Complex) type(Date) type(Dictionary)
type(Directory) type(FltVector) type(Function) type(IntVector)
type(Lambda) type(Matrix) type(NumMatrix) type(NumVector)
type(Number) type(ObjVector) type(ObjectRepository) type(Pair)
type(PcodeVector) type(ShortVector) type(String) type(Structure)
type(Symbol) type(Vector) type(Void) uniqueInsert(FltVector)
uniqueInsert(IntVector) uniqueInsert(Matrix) uniqueInsert(NumMatrix) uniqueInsert(NumVector)
uniqueInsert(ObjVector) uniqueInsert(ShortVector) uniqueInsert(Structure) uniqueInsert(Vector)
vectorFill(BitVector) vectorFill(FltVector) vectorFill(IntVector) vectorFill(Matrix)
vectorFill(NumMatrix) vectorFill(NumVector) vectorFill(ObjVector) vectorFill(ShortVector)
vectorFill(Vector) writeln(ByteVector) writeln(String) writeln(Text)

How do I contact the AIS team?

You can always talk with the AIS at aiserver.sourceforge.net.