pascalabcnet/TestSuite/lambdas_closures_10.pas
Бондарев Иван db16f420bd bug fix #2073
2019-10-20 12:28:44 +02:00

22 lines
453 B
ObjectPascal

type
Recurrent<T> = class
first: T;
next: Func<T,T>;
count: integer;
constructor (f: T; n: Func<T,T>; c: integer);
begin
first := f;
next := n;
count := c;
end;
function f(): IEnumerable<T>;
begin
result := Range(1, count).Select(x -> begin result := first; first := next(first); end)
end;
end;
begin
var a := new Recurrent<integer>(1, x -> x * 2, 10);
writeln(a.f());
end.