F# functions vs C# "Func"tions : <p>So I ran across this tour of F#: <a href="https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tour" rel="noreferrer">https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tour</a></p>

<p>... and boy howdy is F# interesting! The very beginning of the tour defined a sample function, which looks pretty straightforward:</p>

<pre><code>/// You use 'let' to define a function. This one accepts an integer argument and returns an integer. 
/// Parentheses are optional for function arguments, except for when you use an explicit type annotation.
let sampleFunction1 x = x*x + 3
</code></pre>

<p>So this makes sense to me. It defines what the function is so if I were to pass some number into this thing, it squares it and adds 3 to that result, as seen by the next line in the tour:</p>

<pre><code> /// Apply the function, naming the function return result using 'let'. 
/// The variable type is inferred from the function return type.
let result1 = sampleFunction1 4573
</code></pre>

<p>After giving this a few more minutes of thought, I came up with the conclusion that C# can do this too! I sure do love C# a whole lot. This is what the above would look like in C# as far as I can tell:</p>

<pre><code>        Func&lt;int, int&gt; sampleFunction1 = x =&gt; x*x + 3;
        var result = sampleFunction1(4573);
</code></pre>

<p>So my main question is, what is the difference between what I wrote in C# and what the F# tour showed me? Sub-questions are: Is the IL code any different even though it's the same CLR? What are a few reasons I would use F# over C#?</p>
