Example ObjVector copy 009

 

 

Description

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

 

Details

The original Vector.

(define x #(obj| #{A: 1 B: 2} #(1 2 ) )) Returns: #<ObjVector 123456>

The copied Vector using the copy function.

(setq z (copy x)) Returns: #<ObjVector 234567>

The copied Vector using the setq function.

(setq twin x) Returns: #<ObjVector 345678>

The container named z is a copy of x (both are Vectors) and z has a separate memory space. However, the containers named x and twin point to the same memory spaces on the heap. Therefore

(setq twin[1] #{dic| A: 1 B: 2} ) Returns: #<ObjVector 123456>

The setq command results in the contents of both twin and x being both the same.

twin[1] Returns: #{dic| A: 1 B: 2}
x[1] Returns: #{dic| A: 1 B: 2}

Since z points to a different memory space, it still retained the original value which was copied from x before the values of x were modified.

z[1] Returns: #(1 2 )

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

ObjVector

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

BitVector addMethod 023 Context globalBinding 001 Dictionary isDictionary 001 Dictionary objectToDictionary 001
Dictionary objectToDictionary 002 Dictionary objectToDictionary 003 Dictionary objectToDictionary 004 Dictionary refAttributes 002
Dictionary setAttributes 002 Directory objectToDirectory 001 Directory objectToDirectory 002 Directory objectToDirectory 003
Directory objectToDirectory 004 Directory refAttributes 003 Directory setAttributes 003 Lambda globalBinding 001
NumVector svmRegression 001 ObjVector addMethod 022 ObjVector append 009 ObjVector compare 017
ObjVector compareEQ 014 ObjVector compareGE 014 ObjVector compareGT 014 ObjVector compareLE 014
ObjVector compareLT 014 ObjVector compareNE 014 ObjVector comparison functions 014 ObjVector copy 009
ObjVector delete 012 ObjVector insert 008 ObjVector isAtom 008 ObjVector isEqual 016
ObjVector isIdentical 015 ObjVector isObject 010 ObjVector isObjectVector 001 ObjVector isType 019
ObjVector length 011 ObjVector member 007 ObjVector ref 025 ObjVector remove 007
ObjVector resize 009 ObjVector reverse 006 ObjVector setCdr 009 ObjVector setLastCdr 009
ObjVector setq 022 ObjVector sizeof 017 ObjVector type 019 ObjVector uniqueInsert 007
ObjVector vectorFill 006 ObjectRepository exportTab 001 ObjectRepository importTab 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 sizeof 001
String string 001 String string 002 String string 003 String stringToBVector 001
String stringToBVector 002 String stringToBVector 003 String stringToVector 001 String stringToVector 002
String stringToVector 003 String stringToVector 004 String type 001 Structure objectToStructure 001
Structure objectToStructure 002 Structure objectToStructure 003 Structure objectToStructure 004 Structure refAttributes 001
Structure setAttributes 001 Symbol isCharName 002 Symbol isCharNumeric 002 Symbol isObject 002
Symbol isSymbol 001 Symbol isType 004 Symbol sizeof 002 Symbol type 002
Vector refAttributes 004 Vector refValues 004 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