RosettaCodeData/Task/First-class-functions-Use-numbers-analogously/Ada/first-class-functions-use-numbers-analogously.ada

23 lines
569 B
Ada
Raw Permalink Normal View History

2013-04-10 21:29:02 -07:00
with Ada.Text_IO;
procedure Firstclass is
generic
n1, n2 : Float;
function Multiplier (m : Float) return Float;
2016-12-05 22:15:40 +01:00
function Multiplier (m : Float) return Float is
begin
2013-04-10 21:29:02 -07:00
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
2016-12-05 22:15:40 +01:00
Ada.Text_IO.Put_Line (Float'Image (new_function (0.5)));
2013-04-10 21:29:02 -07:00
end;
end loop;
end Firstclass;