Example Matrix send 008

 

 

Description

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

 

Details

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

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

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

(define monthlyBills #(mat| 400 2100 100 600) ) Returns: #<Matrix 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 (Matrix:)) 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 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.

Matrix Dictionary

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

BitVector addMethod 023 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 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 ref 017
Lambda send 008 Lambda send 009 List addMethod 025 List defmethod 022
List methodsOf 022 List send 020 Matrix addMethod 008 Matrix append 007
Matrix apply 005 Matrix apply 006 Matrix binaryInsert 005 Matrix binarySearch 005
Matrix binarySearch 006 Matrix cdr 007 Matrix cdr 008 Matrix compare 007
Matrix compareEQ 007 Matrix compareGE 007 Matrix compareLE 007 Matrix compareNE 007
Matrix comparison functions 007 Matrix copy 006 Matrix copy 007 Matrix count 005
Matrix defMethod 009 Matrix delete 009 Matrix insert 005 Matrix inside 005
Matrix isAtom 005 Matrix isEqual 005 Matrix isIdentical 005 Matrix isMatrix 001
Matrix isNumberMatrix 001 Matrix isObject 007 Matrix isType 009 Matrix length 008
Matrix makeGaussianMatrix 001 Matrix makeGramMatrix 001 Matrix map 006 Matrix map 007
Matrix mapc 005 Matrix matrixGaussianEliminate 001 Matrix matrixGaussianSubstitute 001 Matrix member 005
Matrix methodsOf 010 Matrix new 009 Matrix new 010 Matrix objectToMatrix 001
Matrix objectToNumMatrix 001 Matrix rank 001 Matrix ref 015 Matrix ref 016
Matrix remove 005 Matrix resize 005 Matrix reverse 002 Matrix send 008
Matrix setCdr 005 Matrix setLastCdr 005 Matrix setq 014 Matrix sizeof 007
Matrix sort 012 Matrix type 010 Matrix uniqueInsert 004 Matrix vectorFill 002
NumMatrix addMethod 027 NumMatrix cdr 011 NumMatrix defmethod 024 NumMatrix isNumberMatrix 001
NumMatrix makeGramMatrix 001 NumMatrix matrixGaussianEliminate 001 NumMatrix matrixGaussianSubstitute 001 NumMatrix reverse 004
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 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 compare 008 Void compareEQ 008
Void compareGT 008 Void compareNE 008 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