# Example Directory mapc 003

#### Description

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

#### Details

Defines the Monthly Sales.

 (define MonthlySales #{dir|Jan: 1000 Feb: 2300 Mar: 3200 Apr: 4500}) Returns: #

Defines the function total.

 (defun total(x) pvars: (n) (setq n (+ n x))) Returns: #

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 #{dir| Jan: 1000 Feb: 2300 Mar: 3200 Apr: 4500}) Returns: #
 (defun total(x) pvars: (n) (setq n (+ n x))) Returns: #
 (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 Directory, 11000.

The mapc function does not produce a duplicate Directory 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

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)

#### Argument Types

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

 Directory

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

 Dictionary isDictionary 001 Directory addMethod 006 Directory cdr 004 Directory compare 005 Directory compareEQ 005 Directory compareGE 005 Directory compareGT 005 Directory compareLE 005 Directory compareLT 005 Directory compareNE 005 Directory comparison functions 005 Directory copy 003 Directory count 003 Directory defMethod 007 Directory delete 005 Directory delete 006 Directory insert 003 Directory inside 003 Directory isAtom 003 Directory isBound 003 Directory isDirectory 001 Directory isEqual 003 Directory isIdentical 003 Directory isObject 005 Directory isType 007 Directory length 006 Directory map 003 Directory mapc 003 Directory member 002 Directory member 003 Directory methodsOf 008 Directory new 005 Directory new 006 Directory objectToDirectory 001 Directory objectToDirectory 002 Directory objectToDirectory 003 Directory objectToDirectory 004 Directory ref 010 Directory ref 011 Directory ref 012 Directory refAttributes 003 Directory refValues 003 Directory remove 003 Directory resize 003 Directory send 005 Directory setAttributes 003 Directory setCdr 003 Directory setq 010 Directory setq 011 Directory sizeof 005 Directory sort 007 Directory sort 008 Directory sort 009 Directory type 008 Directory vectorDelete 001 ObjectRepository loadRepository 001 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 type 001 Symbol isCharName 002 Symbol isCharNumeric 002 Symbol isObject 002 Symbol isSymbol 001 Symbol isType 004 Symbol sizeof 002 Symbol type 002

#### Analytic Information Server (AIS)

AIS Component Systems

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