2 function sort1
(S
: String) return String is
3 Result
: String (1 .. S
'Length) := S
;
6 procedure Move
(From
: Natural; To
: Natural) is
8 if From
= 0 then Result
(To
) := Temp
;
9 elsif To
= 0 then Temp
:= Result
(From
);
10 else Result
(To
) := Result
(From
);
14 function Lt
(Op1
, Op2
: Natural) return Boolean is
16 if Op1
= 0 then return Temp
< Result
(Op2
);
17 elsif Op2
= 0 then return Result
(Op1
) < Temp
;
18 else return Result
(Op1
) < Result
(Op2
);
22 package SP
is new GNAT
.Heap_Sort_G
(Move
, Lt
);