//multiple results via out parameters
procedure GetFirstLast(
const Numbers: TArray<Integer>;
out First, Last: Integer);
begin
First := -1;
Last := -1;
if Length(Numbers) > 0 then
begin
First := Numbers[0];
Last := Numbers[High(Numbers)];
end;
end;
var
First, Last: Integer;
begin
GetFirstLast([2, 3, 5], First, Last);
//first is 2
//last is 5
WriteLn('first = ', First);
WriteLn('last = ', Last);
end.