defstruct

 

 

Description

The defstruct macro 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 defstruct can inherit from another object by specifying the include: keyword and the name of the parent object {parentName}.

The defstruct macro results in the following substitution:

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

When to use

The defstruct macro and the defineStructure function do exactly the same thing. The defstruct macro is a mechanism for adding user-defined types to the Analytic Information Server workbench. The defstruct function brings the conventional object-oriented paradigm to the Analytic Information Server workbench. The defstruct 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

(defstruct 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 name String 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_defstruct_001

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

Example_Structure_defstruct_002

This example defines a new type object type name using the defstruct function. This new object type inherits the the previously define employee object 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.