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 Type Providers
Type Providers plug into the F# compiler and covert external structured or semi-structured data into a set of types, properties and methods that can be used by the F# type system. A wide variety of TPs exist, ranging from a simple CSV reader to one allowing access to R programming language libraries.
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.
Pro Computation expressions
Computation expressions, also known as Monads in other languages, are an advanced F# feature that provides a means to model different ways of programming that are often difficult to do using standard programming techniques. By using Computation Expressions, F# was able to add async capabilities in 2007, 5 years ahead of C#.