RosettaCodeData/Task/First-class-functions-Use-numbers-analogously/Ada/first-class-functions-use-numbers-analogously.ada
2023-07-01 13:44:08 -04:00

22 lines
569 B
Ada

with Ada.Text_IO;
procedure Firstclass is
generic
n1, n2 : Float;
function Multiplier (m : Float) return Float;
function Multiplier (m : Float) return Float is
begin
return n1 * n2 * m;
end Multiplier;
num, inv : array (1 .. 3) of Float;
begin
num := (2.0, 4.0, 6.0);
inv := (1.0/2.0, 1.0/4.0, 1.0/6.0);
for i in num'Range loop
declare
function new_function is new Multiplier (num (i), inv (i));
begin
Ada.Text_IO.Put_Line (Float'Image (new_function (0.5)));
end;
end loop;
end Firstclass;