Я читал, что С# lambdas может быть неявно преобразован в Action или Func, но lambda нельзя выполнить напрямую Определить функцию лямбда и немедленно ее выполнить Например:
int n = (()=>5)(); //doesn't work
int n = ((Func<int>)(()=>5))(); //works
Итак, каков фактический тип лямбды и почему он не может быть непосредственно вызван? Это потому, что система типа С# "слабее", чем Haskell или Scala одна?