RosettaCodeData/Task/Look-and-say-sequence/Ada/look-and-say-sequence-1.ada
Ingy döt Net db842d013d A-M baby
2013-04-10 21:29:02 -07:00

13 lines
441 B
Ada

with Ada.Text_IO, Ada.Strings.Fixed;
use Ada.Text_IO, Ada.Strings, Ada.Strings.Fixed;
function "+" (S : String) return String is
Item : constant Character := S (S'First);
begin
for Index in S'First + 1..S'Last loop
if Item /= S (Index) then
return Trim (Integer'Image (Index - S'First), Both) & Item & (+(S (Index..S'Last)));
end if;
end loop;
return Trim (Integer'Image (S'Length), Both) & Item;
end "+";