Example NumVector send 017

 

 

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

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

(define monthlyBills #(num| 400.54 2100.542 100.34 600.6532) ) Returns: #<NumVector 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: 3202.0752

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: NumVector
(methodsOf (NumVector:)) Returns: #<Dictionary 123456>
(ref (#<Dictionary 123456>) addValues: ) Returns: #<Lambda 123456>
( #<Lambda 123456> monthlyBills) Returns: 3202.0752

 

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 Lambda send 008 Lambda send 009 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(#void) defMethod(#void) methodsOf(#void)

 

Argument Types

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

NumVector Dictionary

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

BitVector addMethod 023 BitVector bitToNumberVector 001 BitVector defmethod 020 BitVector inside 007
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 Function addMethod 017
Function addMethod 018 Function defmethod 016 Function methodsOf 016 Function send 014
IntVector addMethod 020 IntVector defmethod 018 IntVector methodsOf 018 IntVector send 016
Lambda compareLE 008 Lambda send 008 Lambda send 009 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 append 008 NumVector apply 007
NumVector binaryInsert 006 NumVector binarySearch 007 NumVector bitToNumberVector 002 NumVector cdr 008
NumVector compare 016 NumVector compareEQ 014 NumVector compareGE 014 NumVector compareGT 014
NumVector compareLE 014 NumVector compareLT 014 NumVector compareNE 014 NumVector comparison 014
NumVector copy 008 NumVector defmethod 019 NumVector delete 011 NumVector insert 007
NumVector inside 006 NumVector isAtom 007 NumVector isEqual 015 NumVector isIdentical 014
NumVector isNumberVector 001 NumVector isObject 009 NumVector isType 018 NumVector length 010
NumVector map 007 NumVector mapc 007 NumVector member 006 NumVector methodsOf 019
NumVector new 011 NumVector objectToNumVector 001 NumVector ref 024 NumVector remove 006
NumVector resize 008 NumVector reverse 005 NumVector send 017 NumVector setCdr 008
NumVector setLastCdr 008 NumVector setq 021 NumVector sizeof 016 NumVector sort 015
NumVector svmRegression 001 NumVector type 018 NumVector uniqueInsert 006 NumVector vectorBinaryInnerProduct 001
NumVector vectorBipolarInnerProduct 001 NumVector vectorCosineInnerProduct 001 NumVector vectorCubeInnerProduct 001 NumVector vectorExpInnerProduct 001
NumVector vectorFill 005 NumVector vectorInnerProduct 001 NumVector vectorLogInnerProduct 001 NumVector vectorQuartInnerProduct 001
NumVector vectorQuintInnerProduct 001 NumVector vectorSigmoidInnerProduct 001 NumVector vectorSineInnerProduct 001 NumVector vectorSquareInnerProduct 001
NumVector vectorTanInnerProduct 001 NumVector vectorTanhInnerProduct 001 Number addMethod 014 Number defmethod 014
Number methodsOf 014 Number send 012 ObjVector addMethod 022 ObjVector cdr 009
ObjVector sort 016 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 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 Void addMethod 009
Void addMethod 010 Void defmethod 010 Void defmethod 011 Void send 009

Analytic Information Server (AIS)

AIS Component Systems

  • Smartbase Engine
  • QT C++ Libraries
  • MySQL Relational Database
  • AIS Lisp Libraries
  • Rapid Analytic Demo IDE