title: What's the actual type of lambda in C#?
body: <p>I read that C# lambdas can be imlicitly converted to Action or Func , but lambda cannot be executed directly <a href="https://stackoverflow.com/questions/24220442/define-a-lambda-function-and-execute-it-immediately">Define a lambda function and execute it immediately</a>
  For example : </p>
  
  <pre><code>int n = (()=&gt;5)(); //doesn't work
  int n = ((Func&lt;int&gt;)(()=&gt;5))(); //works
  </code></pre>
  
  <p>So what is the actual type of lambda and why it cannot be directly called? Is it because C# type system is "weaker" than Haskell or Scala one? </p>