Example IntVector send 016

 

 

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 IntVector: addValues: (lambda (s) (apply + s))) Returns: <Dictionary 123456>

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

(define monthlyBills #(int| 400 2100 100 600) ) Returns: #<IntVector 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: IntVector
(methodsOf (IntVector:)) 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(IntVector) defMethod(IntVector) methodsOf(IntVector)

 

Argument Types

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

IntVector Dictionary

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

BitVector addMethod 023 BitVector bitToIntegerVector 001 BitVector defmethod 020 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 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 send 005 FltVector addMethod 019 FltVector defmethod 017
FltVector methodsOf 017 FltVector send 015 FltVector sort 013 Function addMethod 017
Function addMethod 018 Function defmethod 016 Function methodsOf 016 Function send 014
IntVector addMethod 020 IntVector append 007 IntVector apply 006 IntVector binarySearch 006
IntVector bitToIntegerVector 002 IntVector cdr 007 IntVector compare 015 IntVector compareEQ 014
IntVector compareGE 014 IntVector compareGT 014 IntVector compareLE 014 IntVector compareLT 014
IntVector compareNE 014 IntVector comparison functions 014 IntVector copy 007 IntVector defmethod 018
IntVector delete 010 IntVector insert 006 IntVector inside 005 IntVector isAtom 006
IntVector isEqual 014 IntVector isIdentical 013 IntVector isIntegerVector 001 IntVector isObject 008
IntVector isType 017 IntVector length 009 IntVector map 006 IntVector mapc 006
IntVector member 005 IntVector methodsOf 018 IntVector new 010 IntVector ref 023
IntVector remove 005 IntVector resize 007 IntVector reverse 004 IntVector send 016
IntVector setCdr 007 IntVector setLastCdr 007 IntVector setq 020 IntVector sizeof 015
IntVector sort 014 IntVector type 017 IntVector uniqueInsert 005 IntVector vectorFill 004
List addMethod 025 List defmethod 022 List methodsOf 022 List send 020
Matrix addMethod 008 Matrix defMethod 009 Matrix send 008 NumMatrix addMethod 027
NumMatrix defmethod 024 NumMatrix send 027 NumVector addMethod 021 NumVector defmethod 019
NumVector methodsOf 019 NumVector send 017 Number addMethod 014 Number defmethod 014
Number methodsOf 014 Number send 012 ObjVector addMethod 022 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 methodsOf 020
ShortVector addMethod 021 ShortVector defmethod 019 ShortVector isType 018 ShortVector methodsOf 019
ShortVector send 017 String addMethod 001 String defMethod 001 String defMethod 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 type 001 Structure addMethod 003 Structure addMethod 004
Structure defmethod 004 Structure defmethod 005 Structure methodsOf 005 Structure send 003
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 defmethod 008 Vector send 006 Vector sort 011 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.