Example Directory copy 003

 

 

Description

This example shows how a Vector may be modified destructively or non-destructively using the the copy and setq function.

 

Details

The original Directory.

(define x #{dir|a: "The " b: "Rain " c: "in " d: "Spain "}) Returns: #<Directory 123456>

The copied Directory using the copy function.

(setq clone (copy x)) Returns: #<Directory 234567>

The copied Directory using the setq function.

(setq twin x) Returns: #<Directory 345678>
(display clone) Returns: #{dir|a: "The " b: "Rain " c: "in " d: "Spain "}

The second element of the original Directory is modified.

(setq clone.b "Hail" ) Returns: #<Directory 123456>
(display clone) Returns: #{dir|a: "The " b: "Hail " c: "in " d: "Spain "}
(display twin) Returns: #{dir|a: "The " b: "Rain " c: "in " d: "Spain "}

The original Directory does not contain the modified value.

(display x) Returns: #{a: "The " b: "Rain " c: "in " d: "Spain "}

Notes and Hints

Using the setq function results in objects having the same object id. But the object that is being assigned the copied object has a different object id than original object. In this example twin and x have the same object id while clone has a different object id.

 

Related Examples

Here are examples of the copy function at work.

BitVector copy 011 Brick copy 012 CpxVector copy 013 Dictionary copy 002
Directory copy 003 FltVector copy 006 IntVector copy 007 Lambda copy 008
List copy 010 Matrix copy 006 Matrix copy 007 NumMatrix copy 011
NumVector copy 008 ObjVector copy 009 Pair copy 009 PcodeVector copy 010
ShortVector copy 008 Structure copy 001 Vector copy 004 Vector copy 005

 

Function Links

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

copy

Here are a number of links to other related functions.

setq(#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