37 lines
561 B
Text
37 lines
561 B
Text
|
|
program AnonCompose;
|
||
|
|
|
||
|
|
{$APPTYPE CONSOLE}
|
||
|
|
|
||
|
|
type
|
||
|
|
TFunc = reference to function(Value: Integer): Integer;
|
||
|
|
|
||
|
|
function Compose(F, G: TFunc): TFunc;
|
||
|
|
begin
|
||
|
|
Result:= function(Value: Integer): Integer
|
||
|
|
begin
|
||
|
|
Result:= F(G(Value));
|
||
|
|
end
|
||
|
|
end;
|
||
|
|
|
||
|
|
var
|
||
|
|
Func1, Func2, Func3: TFunc;
|
||
|
|
|
||
|
|
begin
|
||
|
|
Func1:=
|
||
|
|
function(Value: Integer): Integer
|
||
|
|
begin
|
||
|
|
Result:= Value * 2;
|
||
|
|
end;
|
||
|
|
|
||
|
|
Func2:=
|
||
|
|
function(Value: Integer): Integer
|
||
|
|
begin
|
||
|
|
Result:= Value * 3;
|
||
|
|
end;
|
||
|
|
|
||
|
|
Func3:= Compose(Func1, Func2);
|
||
|
|
|
||
|
|
Writeln(Func3(6)); // 36 = 6 * 3 * 2
|
||
|
|
Readln;
|
||
|
|
end.
|