RosettaCodeData/Task/Man-or-boy-test/PascalABC.NET/man-or-boy-test.pas

14 lines
314 B
ObjectPascal

function A(k: integer; x1, x2, x3, x4, x5: function: integer): integer;
begin
var B: function: integer;
B := () -> begin
k := k - 1;
Result := A(k, B, x1, x2, x3, x4);
end;
Result := if k <= 0 then x4() + x5() else B()
end;
begin
Print(A(10, () -> 1, () -> -1, () -> -1, () -> 1, () -> 0))
end.