-- Demonstrates that Ada has value semantics -- The entire array is treated as a value -- No refererences are involved with ada.text_io; use ada.text_io; procedure array_compare2 is type My_Array_T is array(Natural range <>) of Integer; a, b: My_Array_T(1 .. 5) := (others => 1); begin if a = b then put_line("Same"); else put_line("Diff"); end if; a := b; if a = b then put_line("Same"); else put_line("Diff"); end if; a(1) := 99; if a = b then put_line("Same"); else put_line("Diff"); end if; put_line(a(1)'img); put_line(b(1)'img); end array_compare2; -- Output below (what do you predict?): -- Same -- Same -- Diff -- 99 -- 1