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 Allows writing predictable code
Like many other functional languages, F# takes a stance of immutability for everything (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.
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.
Cons
Con Strange syntax
Being a ported Ocaml to .net, this language looks unfamiliar, so it is pretty much like adventuring into uncharted territory. Besides, the technology itself is always expected to be killed off by MS inadvertently, just as it has been the case with other lesser languages by them.
Con Weak support for abstraction (for a functional language)
Does not provide the notion of functors (nor typeclasses).
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.