copy - Maple Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Programming : Data Types : Tables, lists, and sets : copy

copy

create a duplicate table, rtable, or module

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

copy( a );

copy( a , deep);

Parameters

a

-

any expression

Description

• 

The purpose of the copy function is to create a duplicate table, rtable, or record which can be altered without changing the original table, rtable, or record.  If a is not a table, rtable, or record, and a deep copy is not requested, a is returned.

• 

This functionality is necessary since the statements s := table(); t := s; leave both names s and t evaluating to the same table structure.  Hence, unlike other Maple data structures, assignments made via one of the names affect the values associated with the other name as well.

• 

Note that copy is not recursive.  This means that if a is a table of tables, the table data structure for a is copied but the table structures for the entries of a are not copied. To obtain a full recursive copy where all contents that are also mutable structures are copied, or to obtain a copy of a module, use the deep option.

• 

For an rtable, copy preserves rtable options and indexing functions, except for the readonly option which is not set.

Examples

s1x

s1:=x

(1)

ts

t:=s

(2)

t1y

t1:=y

(3)

s1

y

(4)

ucopys

u:=table1=y

(5)

u1z

u1:=z

(6)

s1

y

(7)

mMatrix1,shape=symmetric,a,readonly

m:=a

(8)

MatrixOptionsm

shape=symmetric,datatype=anything,storage=triangularupper,order=Fortran_order,readonly

(9)

ncopym

n:=a

(10)

MatrixOptionsn

shape=symmetric,datatype=anything,storage=triangularupper,order=Fortran_order

(11)

For a table 'a' that contains another table 'b'; when copy is done on 'a' an entirely new copy of 'a' is created.  However the objects contained in the table are not duplicated; so both 'a' and the copy of 'a' contain the table 'b'. Thus, if a change is made to the table 'b' in 'a', that change will show up in the copy of 'a' as well, and vice versa.

Stable45,tablesymmetric,1,2=3

S:=table1=45,2=tablesymmetric,1,2=3

(12)

S1

45

(13)

TcopyS

T:=table1=45,2=tablesymmetric,1,2=3

(14)

T1

45

(15)

T150

T1:=50

(16)

S1

45

(17)

S22,1

3

(18)

T22,15

T22,1:=5

(19)

S22,1

5

(20)

For a list of records, deep must be used to obtain unique instances of the records.

rlRecorda=1,b=2,Recorda=3,b=4

rl:=Recorda=1,b=2,Recorda=3,b=4

(21)

rl_copycopyrl

rl_copy:=Recorda=1,b=2,Recorda=3,b=4

(22)

rl_deepcopyrl,'deep'

rl_deep:=Recorda=1,b=2,Recorda=3,b=4

(23)

rl1a7

rl1a:=7

(24)

rl_copy1a

7

(25)

rl_deep1a

1

(26)

See Also

Array

Matrix

rtable

table

Vector

 


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam