-- Demonstrates creating and calling a generic array sort
with ada.text_io; use ada.text_io;
with ada.float_text_io; use ada.float_text_io;
with Ada.Containers.Generic_Constrained_Array_Sort;
use Ada.Containers;
procedure constrained_generic_sort is
subtype List_Index is natural range 1 .. 4;
type Flt_Array is array(List_Index) of Float;
procedure fsort is new Ada.Containers.Generic_Constrained_Array_Sort(
Index_Type => List_Index,
Element_Type => Float,
Array_Type => Flt_Array);
type Char_Array is array(List_Index) of Character;
procedure sort is new
Generic_Constrained_Array_Sort(List_Index, Character, Char_Array);
procedure put_line(a: Flt_Array) is
begin
for f of a loop
put(f, 5, 1, 0);
end loop;
new_line;
end put_line;
procedure put_line(a: Char_Array) is
begin
for i of a loop
put(i);
end loop;
new_line;
end put_line;
my_floats: Flt_Array := (20.0, 30.0, 10.0, 25.0);
my_chars : Char_Array := ('j', 'p', 'b', 'n');
begin
-- put_line(my_chars);
-- sort(my_chars);
-- put_line(my_chars);
put_line(my_floats);
fsort(my_floats);
put_line(my_floats);
end constrained_generic_sort;
-- Output
-- jpbn
-- bjnp
-- 20.0 30.0 10.0 25.0
-- 10.0 20.0 25.0 30.0