F# has following important features:
F# provides clean and nice code to write no curly brackets, no semicolons and so on. Even you don't have to specify type in your code just because of type inference. Moreover, you can finish your code in less line compared to other languages.
Common programming tasks are much simpler in F#. You can easily define and process your complex problems. Since functions are first class object so it is very easy to create powerful and reusable code by creating functions that uses other functions as a parameter.
F# provides powerful type system which helps to deal with common type errors like null reference exception etc. F# is a strongly typed language which helps to write error free code. It is easily caught at compile time as a type error.
F# provides number of built-in functions and libraries to deal with programming system when multiprocessing is occurred. F# also supports asynchronous programming, message queuing system and support for event handling. Data in F# is immutable by default so sharing of data is safe. It avoids lock during code communication.
F# is a functional programming language but it also supports other programming approaches like object oriented, imperative etc. which makes it easier to interact with other domains. Basically, we can say that F# is designed as a hybrid language by which you can do almost everything that you can do with other programming languages like C#, Java etc.
F# interacts with .Net library so that it can access the entire library and tools.