# Example Structure copy 001

#### Description

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

#### Details

The original Structure.

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

The copied Structure using the copy function.

 (setq clone (copy x)) Returns: #

The copied Structure using the setq function.

 (setq z x) Returns: #

The contents of x, clone and z Structures respectively.

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

The second element of the original Structure is modified.

 (setq x[1] "Hail" ) Returns: #

The original Structure contains the modified value.

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

The copied Structure using the copy function does not contain the modified value since the copied Structure produced is stored in a different memory location.

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

The copied structure using the setq function contains the modified value since both x and z Structures are pointing to the same data.

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

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

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.

 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