-- Demonstrates array assignment -- Arrays of the same name and size can be assigned, -- even if the indices are different with ada.text_io; use ada.text_io; with ada.integer_text_io; use ada.integer_text_io; procedure array_assign is type Int_Array_t is array(Natural range <>) of integer; procedure put_line(a: Int_Array_t) is begin for i in a'range loop put(i); put(":"); put(a(i)'img); end loop; new_line; end put_line; procedure put3(a1, a2, a3: Int_Array_t) is begin put_line(a1); put_line(a2); put_line(a3); new_line; end put3; a1: Int_Array_t(1 .. 4) := (11, 22, 33, 44); a2: Int_Array_t(1 .. 4) := (61, 72, 83, 94); a3: Int_Array_t(101 .. 104) := (91, 92, 93, 94); begin put3(a1, a2, a3); a1 := a2; put3(a1, a2, a3); a1 := a3; put3(a1, a2, a3); end array_assign; -- Output; -- 1: 11 2: 22 3: 33 4: 44 -- 1: 61 2: 72 3: 83 4: 94 -- 101: 91 102: 92 103: 93 104: 94 -- -- 1: 61 2: 72 3: 83 4: 94 -- 1: 61 2: 72 3: 83 4: 94 -- 101: 91 102: 92 103: 93 104: 94 -- -- 1: 91 2: 92 3: 93 4: 94 -- 1: 61 2: 72 3: 83 4: 94 -- 101: 91 102: 92 103: 93 104: 94