Recs.
Updated
F# is a statically typed, functional-first programming language that encompasses imperative and object-oriented techniques and features global type inference.
SpecsUpdate
Pros
Pro Natively supported by Visual Studio
This is a .Net language natively supported by Visual Studio. Though it is not as tooled up as C# the support is still substantial. In particular, C# deployment scenarios can be enabled for it with small C# wrapper projects. Integration with Visual Studio provides: IntelliSense, debugging, projects an other features.
Pro Fall into the pit of success
F# directs you into a workflow where the right way is the path of least resistance.
Coming from a C# background, its restrictions might feel arbitrary at first (e.g., what do you mean my code has to be in dependency order!? Arbitrary alphabetical or bust!), but you'll soon realize that your code is cohesive, concise and consistent in a way that it never was before - and you can compile and run with confidence!
Cons
Recommendations
Comments
Flagged Pros + Cons
Pro Allows writing predictable code
Like many other functional languages, F# takes a stance of immutability for most of its constructs (state, values etc...). There are several reasons why having immutable values is good. One of those is that the code you are writing becomes much more predictable and you don't have to worry about any side effects.
Con Not really cross platform
Though the community sites are touting F# can be cross platform through use of Mono, the reality is that it is more of a hack to replay on larger mono applications in production.