With one parameter

Lambda expressions

uses System.SysUtils, System.Math;

var
  PowOfTwo: TFunc<Integer, Integer>;
  PowOfThree: TFunc<Double, Double>;
begin
  //anonymous method in a variable
  PowOfTwo := function(Degree: Integer): Integer
    begin
      Result := Round(Power(2, Degree));
    end;
  WriteLn('pow8 is ', PowOfTwo(8));
  //pow8 is 256

  PowOfThree := function(Degree: Double): Double
    begin
      Result := Power(3, Degree);
    end;
  WriteLn('pow3 is ', PowOfThree(3):0:1);
  //pow3 is 27.0
end.