Example Dictionary map 002

 

 

Description

This example defines a Dictionary and applies the add1 function to each element of the Dictionary using the map function.

 

Details

(define Student #{dic| Amy: 5 Tom: 6 Mary: 5 John: 6}) Returns: #<Dictionary 123456>

Sets the resulting values of the Dictionary "Student" to the new Dictionary "Graduated".

(setq Graduated (map add1 Student)) Returns: #<Dictionary 23456>

Alternatively, the loop special form could have been used but would not be as terse or as fast.

(define Student #{dic| Amy: 5 Tom: 6 Mary: 5 John: 6}) Returns: #<Dictionary 34567>

Copies the original Dictionary in to a new one.

(setq Graduated (copy Student )) Returns: #<Dictionary 45678>

Changes the 4 values of the Dictionary through the add1 method.

(loop for n from 0 until (length Graduated) by 1 do
(setq Graduated[n] (add1 Graduated[n]) ) )
Returns: 4

Displays the new values of the "Graduated" Dictionary.

(display Graduated) Returns: #{Amy: 6 Tom: 7 Mary: 6 John: 7}true

Notes and Hints

Note, that a copy was made, and the argument {proc} , add1, was applied to each member in the copy of the Structure. The Student Structure is left untouched, because the map function is non-destructive.

Also note, the return value from the loop is the number of iterations performed. In this case, it is the number 4.

 

Related Examples

Here are examples of the map function at work.

Dictionary map 002 Directory map 003 FltVector map 005 IntVector map 006
Matrix map 006 Matrix map 007 NumMatrix map 010 NumVector map 007
Pair map 008 ShortVector map 007 Structure map 001 Vector map 004

 

Function Links

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

map

Here are a number of links to other related functions.

mapc(#void) makeDictionary(#void)

 

Argument Types

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

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 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 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