Ansicht umschalten
Avatar von Thömmi
  • Thömmi

268 Beiträge seit 12.01.2000

Fibonacci als Lambda-Funktion

Der rekursive Aufruf der Fibonacci-Funktion würde an einem Lambda-Ausdruck scheitern. Der Compiler würde einen Fehler melden, wenn die Lambda-Funktion versucht, sich selbst aufzurufen, weil die Methode in dem Fall noch nicht definiert ist

Das geht sehr wohl. Der "Trick" ist, die Lambda-Funktion vorher schon zu deklarieren, dann kann im Lambda-Ausdruck auch darauf zugegriffen werden:

int firstFibonacci = 1; Func<int, int> Fibonacci = null; Fibonacci = n => (n < 2) ? firstFibonacci : Fibonacci(n - 1) + Fibonacci(n - 2); Console.WriteLine(Fibonacci(23)); Console.ReadKey();
Bewerten
- +
Ansicht umschalten