Example Vector send 006

 

 

Description

This example first defines the method addValues. It then invokes the addMethod function to add the method in the Methods Dictionary. The method Increment will be then invoked by the send function calling the message in the Dictionary Methods Dictionary.

 

Details

Add a method named addValues which will add the values of all the fields in a Vector.

(addMethod Vector: addValues: (lambda (s) (apply + s))) Returns: #<Dictionary 123456>

Define a Vector that contains the amount of checks written for the month.

(define monthlyBills #( 400 2100 100 600) ) Returns: #<Vector 123456>

Invoke the method named addValues to compute the total amount checks written for the month.

(send addValues: monthlyBills) Returns: 3200

The method can be invoked simply by name:

(addValues: monthlyBills) Returns: 3200

Notes and Hints

Dissecting the send command involves understanding the methods dictionary of any Analytic Information Server type. In general the send command is translated as a reference into the methods dictionary:

((ref (methodsOf (type object)) methodName object))

The statement :

(send addValues: monthlyBills)

is translated into

((ref (methodsOf (type monthlyBills)) addValues: ) monthlyBills)

Each statement segment results in:

(type monthlyBills) Returns: Vector
(methodsOf (Vector:)) Returns: #<Dictionary 123456>
(ref (#<Dictionary 123456>) addValues: ) Returns: #<Lambda 123456>
( #<Lambda 123456> monthlyBills) Returns: 3200

 

Related Examples

Here are examples of the send function at work.

BitVector send 018 Character send 011 CpxVector send 028 Date send 013
Dictionary send 004 Directory send 005 FltVector send 015 Function send 014
IntVector send 016 Matrix send 008 NumMatrix send 027 NumVector send 017
Number send 012 Pair send 019 ShortVector send 017 String send 001
Structure send 003 Symbol send 002 Vector send 006 Void send 009

 

Function Links

Here is the link to the current function used in this example.

send

Here are a number of links to other related functions.

addMethod(Vector) defMethod(Vector) methodsOf(Vector)

 

Argument Types

Here are the links to the data types of the arguments used in this example.

Vector Dictionary

Here are a number of links to examples having similar argument types.

BitVector addMethod 023 BitVector bitToIntegerVector 001 BitVector defmethod 020 BitVector isBitVector 001
BitVector methodsOf 021 BitVector send 018 Boolean addMethod 011 Boolean addMethod 012
Boolean defmethod 012 Boolean send 010 Brick addMethod 008 Brick defmethod 025
Brick methodsOf 024 Brick send 027 Character addMethod 013 Character defmethod 013
Character methodsOf 013 Character send 011 CpxVector addMethod 028 CpxVector apply 010
CpxVector send 028 Date addMethod 015 Date addMethod 016 Date defmethod 015
Date methodsOf 015 Date send 013 Dictionary addMethod 005 Dictionary binarySearch 002
Dictionary cdr 003 Dictionary compare 004 Dictionary compareEQ 004 Dictionary compareGE 004
Dictionary compareGT 004 Dictionary compareLE 004 Dictionary compareLT 004 Dictionary compareNE 004
Dictionary comparison functions 004 Dictionary copy 002 Dictionary count 002 Dictionary defMethod 006
Dictionary delete 003 Dictionary delete 004 Dictionary insert 002 Dictionary inside 002
Dictionary isAtom 002 Dictionary isBound 002 Dictionary isDictionary 001 Dictionary isEqual 002
Dictionary isIdentical 002 Dictionary isInside 002 Dictionary isMember 002 Dictionary isObject 004
Dictionary isType 006 Dictionary length 005 Dictionary makeDictionary 001 Dictionary map 002
Dictionary mapc 002 Dictionary member 002 Dictionary methodsOf 007 Dictionary new 004
Dictionary objectToDictionary 001 Dictionary objectToDictionary 002 Dictionary objectToDictionary 003 Dictionary objectToDictionary 004
Dictionary ref 007 Dictionary ref 008 Dictionary ref 009 Dictionary refAttributes 002
Dictionary refValues 002 Dictionary remove 002 Dictionary resize 002 Dictionary send 004
Dictionary setAttributes 002 Dictionary setCdr 001 Dictionary setCdr 002 Dictionary setq 007
Dictionary setq 008 Dictionary setq 009 Dictionary sizeof 004 Dictionary sort 003
Dictionary sort 004 Dictionary sort 005 Dictionary type 007 Directory addMethod 006
Directory defMethod 007 Directory isDirectory 001 Directory new 006 Directory objectToDirectory 001
Directory objectToDirectory 002 Directory objectToDirectory 003 Directory objectToDirectory 004 Directory refValues 003
Directory send 005 Directory setAttributes 003 FltVector addMethod 019 FltVector binaryInsert 004
FltVector compareLE 014 FltVector compareLT 014 FltVector defmethod 017 FltVector isFloatVector 001
FltVector methodsOf 017 FltVector send 015 Function addMethod 017 Function addMethod 018
Function defmethod 016 Function methodsOf 016 Function send 014 IntVector addMethod 020
IntVector binaryInsert 005 IntVector bitToIntegerVector 002 IntVector defmethod 018 IntVector isIntegerVector 001
IntVector methodsOf 018 IntVector send 016 List addMethod 025 List defmethod 022
List methodsOf 022 List send 020 Matrix addMethod 008 Matrix binaryInsert 004
Matrix compareGT 007 Matrix compareLT 007 Matrix defMethod 009 Matrix matrixGaussianSubstitute 001
Matrix send 008 NumMatrix addMethod 027 NumMatrix defmethod 024 NumMatrix matrixGaussianSubstitute 001
NumMatrix send 027 NumVector addMethod 021 NumVector defmethod 019 NumVector isNumberVector 001
NumVector methodsOf 019 NumVector objectToNumVector 001 NumVector send 017 NumVector svmRegression 001
Number addMethod 014 Number defmethod 014 Number methodsOf 014 Number product 001
Number send 012 ObjVector addMethod 022 ObjVector isObjectVector 001 ObjectRepository addMethod 026
ObjectRepository defmethod 023 ObjectRepository methodsOf 023 ObjectRepository send 026 Pair addMethod 024
Pair defmethod 021 Pair methodsOf 021 Pair send 019 PcodeVector isPcodeVector 001
PcodeVector methodsOf 020 ShortVector addMethod 021 ShortVector defmethod 019 ShortVector methodsOf 019
ShortVector send 017 String addMethod 001 String defMethod 001 String defMethod 002
String find 001 String find 002 String isChar 001 String isCharAlphabetic 001
String isCharAlphanumeric 001 String isCharLowercase 001 String isCharName 001 String isCharNumeric 001
String isCharUppercase 001 String isCharWhitespace 001 String isEqual 001 String isEqual 002
String isObject 001 String isString 001 String isText 001 String isType 001
String isType 002 String isType 003 String methodsOf 001 String methodsOf 002
String methodsOf 003 String parse 001 String send 001 String sizeof 001
String string 001 String string 002 String string 003 String stringToBVector 001
String stringToBVector 002 String stringToBVector 003 String stringToVector 001 String stringToVector 002
String stringToVector 003 String stringToVector 004 String type 001 Structure addMethod 003
Structure addMethod 004 Structure defmethod 004 Structure defmethod 005 Structure methodsOf 005
Structure objectToStructure 001 Structure objectToStructure 002 Structure objectToStructure 003 Structure objectToStructure 004
Structure send 003 Structure setAttributes 001 Symbol addMethod 002 Symbol defMethod 003
Symbol isCharName 002 Symbol isCharNumeric 002 Symbol isObject 002 Symbol isSymbol 001
Symbol isType 004 Symbol methodsOf 004 Symbol send 002 Symbol sizeof 002
Symbol type 002 Vector addMethod 007 Vector append 006 Vector appendWriteln 001
Vector apply 003 Vector apply 004 Vector binaryInsert 002 Vector binaryInsert 003
Vector binarySearch 003 Vector binarySearch 004 Vector cdr 005 Vector cdr 006
Vector compare 006 Vector compareEQ 006 Vector compareGE 006 Vector compareGT 006
Vector compareLE 006 Vector compareLT 006 Vector compareNE 006 Vector comparison functions 006
Vector copy 004 Vector copy 005 Vector count 004 Vector defmethod 008
Vector delete 007 Vector delete 008 Vector insert 004 Vector inside 004
Vector isAtom 004 Vector isEqual 004 Vector isIdentical 004 Vector isObject 006
Vector isType 008 Vector isVector 001 Vector length 007 Vector map 004
Vector mapc 004 Vector member 004 Vector methodsOf 009 Vector new 007
Vector new 008 Vector objectToVector 001 Vector ref 013 Vector ref 014
Vector refAttributes 004 Vector refValues 004 Vector remove 004 Vector resize 004
Vector reverse 001 Vector send 006 Vector setAttributes 004 Vector setAttributes 005
Vector setBlock 001 Vector setCdr 004 Vector setLastCdr 002 Vector setq 012
Vector setq 013 Vector sizeof 006 Vector sort 010 Vector sort 011
Vector type 009 Vector uniqueInsert 003 Vector vectorFill 001 Void addMethod 009
Void addMethod 010 Void defmethod 010 Void defmethod 011 Void send 009

How do I contact the AIS Server team?

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