The below does not compile:
Func fac = n => (n <= 1) ? 1 : n * fac(n - 1);
Local variable \'fac\' migh
Well geez, if you'd just typed "why does a recursive lambda cause a definite assignment error?" into some search engine, you'd have found the answer in my article on the subject.
:-)
http://blogs.msdn.com/ericlippert/archive/2006/08/18/why-does-a-recursive-lambda-cause-a-definite-assignment-error.aspx