Example Structure mapc 001

 

 

Description

The following example will define a user function, total, that will take an argument (which is a structure field) and add the argument to a pvar container (persistent variable). The input to the total function is a structure containing monthly sales figures. The mapc function then applies each Structure element as argument to the function total.

 

Details

Defines the Structure Monthly Sales.

(define MonthlySales #{Jan: 1000 Feb: 2300 Mar: 3200 Apr: 4500}) Returns: #<Structure 123456>

Defines the function total.

(defun total(x) pvars: (n) (setq n (+ n x))) Returns: #<Lambda 123456>

The result is saved in the persistent variable, n.

(display total.n) Returns: 11000

The following code sample using a loop, produces the same result as mapc:

(define MonthlySales #{Jan: 1000 Feb: 2300 Mar: 3200 Apr: 4500}) Returns: #<Structure 34567>
(defun total(x) pvars: (n) (setq n (+ n x))) Returns: #<Structure 45678>
(loop for n from 0 until (length MonthlySales) do
(total MonthlySales[i]) )
Returns: 4

The result is saved in the the persistent variable, n

(display total.n) Returns: 11000

Notes and Hints

Note, the return value from the loop is the number of iterations performed. In this case, it is the number 4, whereas the return value from the mapc function is the value of the function as it is applied to the last member of the structure, 11000.

The mapc function does not produce a duplicate structure as in the map function.

 

Related Examples

Here are examples of the mapc function at work.

Dictionary mapc 002 Directory mapc 003 FltVector mapc 005 IntVector mapc 006
List mapc 009 Matrix mapc 005 NumMatrix mapc 009 NumVector mapc 007
Pair mapc 008 ShortVector mapc 007 Structure mapc 001 Vector mapc 004

 

Function Links

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

mapc

Here are a number of links to other related functions.

map(#void) makeStructure(#void)

 

Argument Types

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

Structure

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

BitVector cdr 010 Dictionary isDictionary 001 Dictionary setAttributes 002 Directory setAttributes 003
FltVector cdr 006 IntVector cdr 007 Matrix cdr 007 Matrix cdr 008
NumMatrix cdr 011 NumVector cdr 008 NumVector svmRegression 001 ObjVector cdr 009
ShortVector cdr 008 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 parse 001 String sizeof 001 String string 001
String string 002 String string 003 String type 001 Structure addMethod 003
Structure addMethod 004 Structure append 004 Structure append 005 Structure apply 001
Structure apply 002 Structure binaryInsert 001 Structure binarySearch 001 Structure cdr 001
Structure cdr 002 Structure compareEQ 003 Structure compareGE 003 Structure compareGT 003
Structure compareLE 003 Structure compareLT 003 Structure compareNE 003 Structure comparison functions 003
Structure copy 001 Structure count 001 Structure defineStructure 001 Structure defineStructure 002
Structure defineStructure 003 Structure defmethod 004 Structure defmethod 005 Structure defstruct 001
Structure defstruct 002 Structure delete 001 Structure delete 002 Structure fieldsOf 001
Structure insert 001 Structure inside 001 Structure isAtom 001 Structure isBound 001
Structure isEqual 001 Structure isIdentical 001 Structure isInside 001 Structure isMember 001
Structure isObject 003 Structure isStructure 001 Structure isType 005 Structure length 004
Structure makeStructure 001 Structure makeStructure 002 Structure map 001 Structure mapc 001
Structure member 001 Structure methodsOf 005 Structure new 003 Structure objectToStructure 001
Structure objectToStructure 002 Structure objectToStructure 003 Structure objectToStructure 004 Structure ref 004
Structure ref 006 Structure refAttributes 001 Structure refValues 001 Structure remove 001
Structure resize 001 Structure send 003 Structure setAttributes 001 Structure setCdr 001
Structure setCdr 002 Structure setLastCdr 001 Structure setq 003 Structure setq 004
Structure setq 005 Structure setq 006 Structure sizeof 003 Structure sort 001
Structure sort 002 Structure sort 003 Structure type 003 Structure type 004
Structure type 005 Structure uniqueInsert 001 Structure uniqueInsert 002 Symbol isCharName 002
Symbol isCharNumeric 002 Symbol isObject 002 Symbol isSymbol 001 Symbol isType 004
Symbol sizeof 002 Symbol type 002 Vector cdr 005 Vector cdr 006
Vector setAttributes 004 Vector setAttributes 005

Analytic Information Server (AIS)

AIS Component Systems

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