{{wrongtitle|title=F♯ programming language}} ''(This may not be visible in all browsers)''
'''F#''' (pronounced F sharp) is a mixed [[functional programming|functional]] and [[Imperative programming|imperative]] [[programming language]] for the [[Microsoft .NET]] platform. F# was developed by [http://blogs.msdn.com/dsyme/default.aspx Don Syme] at [[Microsoft Research]], and has a core language that is similar to that of the [[Ocaml|Caml]] language (itself a member of the [[ML programming language]] family).
A strength of F# is its setting within .NET. A key design aim is seamless .NET interopinteroperability, both via direct use of .NET APIs from F# and authorship of natural .NET components in F#. Consequently, the main F# libraries are the .NET libraries themselves (e.g. DirectX, Windows Forms, and ASP.NET, as well as alternatives like GTK#). A Visual Studio plugin provides a cutting edgegraphical development environment, forincluding anfeatures MLsuch language. For starters, theas background type-checking with feedback under the mouse, arewhich invaluableis especiallyextremely helpful for those learning a languageunfamiliar with type inference.
F# also provides a standard library of its own, designed to be largely compatible with the OCaml andstandard F#library. Since the two languages also share a common language subset and, it iscan thus be quite practical to cross compile significanta codessingle betweencodebase thewith twoboth. This enables CAMLcore codesCaml code to portbe ported to the .NET world, and core F# codescode to run with OCAMLOCaml. CoreMaintaining CAMLthis compatabilitybasic compatibility is takenone of the primary goals of the seriouslyproject.
F# asAs a research project, F# demonstrates how .NET enables interoperability between different [[Programming paradigm|programming paradigms]]. F#It showcases a set of extensions to .NET's intermediate language IL, called ILX, which demonstrate how a strict curried functional language may be compiled efficiently.
As of June 2005, F# was in the [[Development stage#Beta|beta]] stage of development.