F# (pronounced “F sharp”) is a functional programming language developed at Microsoft Research that targets developers dealing with concurrency and those in areas of finanical, scientific and technical, and academics.
S. “Soma” Somasegar, corporate vice president of Microsoft’s Developer Division has written a blog entry entitied F# – A Functional Programming Language that explains Microsoft’s interest in the language. In addition, he has announced that F# would be be fully integrated into Visual Studio writing, “We will be partnering with Don Syme and others in Microsoft Research to fully integrate the F# language into Visual Studio and continue innovating and evolving F#. In my mind, F# is another first-class programming language on the CLR.”
Language features such as lambda expressions in C# and generics in .NET 2.0 have roots in functional languages, and LINQ is directly based on functional programming techniques.
The classic version of functional programming may have been the original Lisp. F# stems from the functional programming tradition (hence the ‘F’) and has strong roots in the ML family of languages, though also draws from C#, LINQ and Haskell. F# is designed from the outset to be a first class citizen on .NET. This means that F# runs on the CLR, embraces object-oriented programming, and has features to ensure a smooth integration with the .NET Framework.
The somewhat mathematical slant of functional programming just seems naturally appealing to professionals whose primary domain is described with mathematical notation – domains such as financial, scientific and technical computing. On top of the syntactic appeal, the strong type system yields the sort of guarantees which are often crucial in these domains, and enables a superb tooling experience through Visual Studio.