Zitat von
alzaimar:
Ich brech mir hier einen ab, poste eine endgeniale rekursive Lösung für das vermutlich NP-Komplette Problem der Zahlennegierung, [...]
Keine Tail Recursion (auf die deutsche Übersetzung verzichte ich mal)? Also bitte.
Delphi-Quellcode:
function MakeNegative(const aNumber: Integer): Integer;
function Loop(const aNumber: Integer; const aContinuation: TFunc<Integer, Integer>): Integer;
begin
if aNumber > 0 then
Result := Loop(aNumber-1,
function(X: Integer): Integer
begin
Result := aContinuation(Result-1);
end)
else
Result := aContinuation(0);
end;
Result := Loop(aNumber,
function(X: Integer): Integer
begin
Result := X;
end);
end;