defmethod

 

 

Description

The defmethod macro constructs an Lambda {exp} with an arbitrary number of arguments {args...}, the Lambda's published interfaces {faces:}, local variables {vars: }, persistent variables {pvars:} and persistent class variables {cvars:}. The new Lambda is added to the Methods Dictionary of the specified type {type}. After adding the Lambda to the Methods Dictionary of the {type}, the type will respond to the message named {msgName}. This feature is instrumental in providing Analytic Information Server with support for standard Object Oriented Programming features.

The Analytic Information Server Lisp compiler constructs a method binding from the {msgName} argument and the Lambda. The new method binding is installed in the methods Dictionary associated with the specified type {type}. The defmethod function returns the Methods Dictionary object.

Methods Dictionary

MsgName1LambdaName1
MsgName2LambdaName2
MsgName3LambdaName3

When to use

The defmethod macro is used to install a method in the Methods Dictionary for a type. The defmethod is a macro version of the addMethod function.

 

Syntax

(defmethod Vector: msgName(args...) faces: (vars...) vars: (vars...)

pvars: (vars...) cvars: (vars...)( exp ) )



Name Description AIS Types
Vector: Mandatory keyword. Tells defmethod to add the following Lambda to the Vector type.---
msgName(args...)The name of the message to which the Vector type will respond and the argument list required by the Lambda ---
faces: (var...)Optional Argument. If present, must be followed by a interfaces feature list---
vars: (var...)Optional Argument. If present, must be followed by a by a local variable list---
pvars: (var...)Optional Argument. If present, must be followed by a by a persistent variable list
cvars: (var...)Optional Argument. If present, must be followed by a by a persistent class variable list---
exp...The Lisp statements that form the Lambda---


Returns:

The Methods Dictionary for the Vector data type.

 

Examples

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

Example_IntVector_defmethod_018

This example uses the added method IncAll to respond to the message IncAll which will increment each value in an Integer Vector.

 

Argument Types

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

Symbol Dictionary

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

++(Symbol) +=(Symbol) /=(Symbol) *=(Symbol)
--(Symbol) -=(Symbol) 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) binarySearch(CpxVector)
binarySearch(Dictionary) binarySearch(FltVector) binarySearch(IntVector) binarySearch(Matrix)
binarySearch(NumMatrix) binarySearch(NumVector) binarySearch(ObjVector) binarySearch(ShortVector)
binarySearch(Structure) binarySearch(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) compress(ByteVector) 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) debug(Context) debug(Lambda)
defchild(Lambda) define(macro)(Lambda) define(Lambda) defmacro(Lambda)
defmethod(BitVector) defmethod(Boolean) defmethod(Brick) defmethod(Character)
defmethod(Date) defmethod(Dictionary) defmethod(Directory) defmethod(FltVector)
defmethod(Function) defmethod(IntVector) defmethod(List) defmethod(Matrix)
defmethod(NumMatrix) defmethod(NumVector) defmethod(Number) defmethod(ObjectRepository)
defmethod(Pair) defmethod(ShortVector) defmethod(String) defmethod(Structure)
defmethod(Symbol) defmethod(Vector) defmethod(Void) deforphan(Lambda)
defriend(Lambda) defun(Lambda) 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)
disassemble(Context) disassemble(Lambda) display(ByteVector) display(FileIO)
downcase(String) downcase(Symbol) encode(ByteVector) exportTab(Lambda)
exportTab(ObjectRepository) gc(Context) getGlobalValue(Context) getGlobalValue(Symbol)
getSymbolTable(Context) getSymbolTable(Symbol) globalBinding(Context) globalBinding(Lambda)
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)
inspect(Context) inspect(Lambda) inspect(ObjectRepository) 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) isCharAlphabetic(ByteVector) isCharAlphabetic(String)
isCharAlphabetic(Symbol) isCharAlphanumeric(ByteVector) isCharAlphanumeric(String) isCharAlphanumeric(Symbol)
isCharLowercase(ByteVector) isCharLowercase(String) isCharLowercase(Symbol) isCharName(ByteVector)
isCharName(String) isCharName(Symbol) isCharNumeric(ByteVector) isCharNumeric(String)
isCharNumeric(Symbol) isCharUppercase(ByteVector) isCharUppercase(String) isCharUppercase(Symbol)
isCharWhitespace(ByteVector) isCharWhitespace(String) isCharWhitespace(Symbol) 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) makeDictionary(Dictionary) makeQuotedList(List) makeQuotedSymbol(Symbol)
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)
methodsOf(BitVector) methodsOf(Boolean) methodsOf(Brick) methodsOf(Character)
methodsOf(Complex) methodsOf(Date) methodsOf(Dictionary) methodsOf(Directory)
methodsOf(FltVector) methodsOf(Function) methodsOf(IntVector) methodsOf(List)
methodsOf(Matrix) methodsOf(NumMatrix) methodsOf(NumVector) methodsOf(Number)
methodsOf(ObjVector) methodsOf(ObjectRepository) methodsOf(Pair) methodsOf(PcodeVector)
methodsOf(ShortVector) methodsOf(String) methodsOf(Structure) methodsOf(Symbol)
methodsOf(Vector) methodsOf(Void) 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)
objectToDictionary(Dictionary) objectToList(List) objectToMatrix(Matrix) objectToNumMatrix(NumMatrix)
objectToNumVector(NumVector) objectToVector(Vector) openLog(FileIO) openLog(String)
pair(Pair) parse(String) proplist(Symbol) 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) rename(ObjectRepository)
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) saveRepository(ObjectRepository) 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) set(ObjectRepository)
setf(ObjectRepository) 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) symbol(Symbol)
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.