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();