Обобщенные подпрограммы в качестве параметров
Обобщенная подпрограмма может выступать в качестве формального параметра другой обобщенной подпрограммы.
Например, в классе System.Array
имеется несколько статических обобщенных методов с обобщенными
подпрограммами в качестве параметров. Так, System.Array.Find
имеет следующий прототип:
System.Array.FindAll<T>(a: array of T; pred: Predicate<T>): array of T;
и возвращает подмассив массива a
элементов T
, удовлетворяющих условию
pred
.
Приведем пример вызова этой функции:
function f(x: integer): boolean;
begin
Result := ;
end;
var a := Seq(1,3,6,5,8);
var b := System.Array.FindAll(a,x -> x mod 2 = 0);
Здесь возвращается массив b
,
содержащий все четные значения массива a
в
том же порядке.