Lambda expressions

uses System.Generics.Defaults,
  System.Generics.Collections;

var
  Numbers: TArray<Integer>;
  Number: Integer;
begin
  Numbers := [231];

  //the comparer is an anonymous function
  TArray.Sort<Integer>(Numbers,
    TComparer<Integer>.Construct(
      function(const L, R: Integer): Integer
      begin
        Result := R - L;
      end));
  //numbers is [3, 2, 1]

  for Number in Numbers do
    Write(Number, ' ');
  WriteLn;
end.