RosettaCodeData/Task/Hailstone-sequence/Ada/hailstone-sequence-3.ada
Ingy döt Net db842d013d A-M baby
2013-04-10 21:29:02 -07:00

15 lines
409 B
Ada

package body Hailstones is
function Create_Sequence (N : Positive) return Integer_Sequence is
begin
if N = 1 then
-- terminate
return (1 => N);
elsif N mod 2 = 0 then
-- even
return (1 => N) & Create_Sequence (N / 2);
else
-- odd
return (1 => N) & Create_Sequence (3 * N + 1);
end if;
end Create_Sequence;
end Hailstones;