Example Void send 009

 

 

Description

This example defines a method named AddError that is invoked when the Void type receives an Add message. The send function is used to send the message Add to the Void type.

 

Details

Define the Add method:

(defmethod Void: Add(a b) ( writeln "Cannot Add to value:" a)) Returns: #<Dictionary 123456>

If the Void type is sent an Add message, an Lambda is invoked to output an error message. The reason is that the Void type, or #void constant cannot be used as an operand of a binary add. To invoke the Lambda that responds to the Add message, issue the following statement:

(send Add: #void 1) Returns: Cannot Add to value:#void

Alternatively, the Lambda may be invoked using the following syntax:

(Add: #void 1) Returns: Cannot Add to value:#void

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 Add: #void 1)

is translated into

((ref (methodsOf (type #void)) Add: ) #void 1)

Each statement segment results in:

(type #void) Returns: Void
(methodsOf (Void:)) Returns: #<Dictionary 123456>
(ref (#<Dictionary 123456>) Add: ) Returns: #<Lambda 123456>
( #<Lambda 123456> #void 1) Returns: Cannot Add to value: #void

 

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.

Void 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 methodsOf 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 isDate 001 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 Error isIdentical 007
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 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 compareGE 008
Void compareLE 008 Void compareLT 008 Void comparison functions 008 Void defmethod 010
Void defmethod 011 Void isEqual 006 Void isIdentical 006 Void isNull 001
Void isType 010 Void methodsOf 011 Void ref 017 Void send 009
Void setq 015 Void sizeof 008 Void type 011

Analytic Information Server (AIS)

AIS Component Systems

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