RosettaCodeData/Task/First-class-functions-Use-n.../PascalABC.NET/first-class-functions-use-n...

20 lines
440 B
ObjectPascal

begin
var x, xi, y, yi, z, zi: real;
x := 2.0;
xi := 0.5;
y := 4.0;
yi := 0.25;
z := x + y;
zi := 1.0 / (x + y);
var numlist := new real[] ( x, y, z );
var numlisti := new real[] ( xi, yi, zi );
var multiplied := numlist.Zip(numlisti, (n1, n2) -> begin
var multiplier: real -> real := m -> n1 * n2 * m;
Result := multiplier;
end);
foreach var multiplier in multiplied do
Println(multiplier(0.5));
end.