F# (pronounced “F Sharp”) is a strongly-typed, functional-first programming language for writing simple code to solve complex problems. From the business perspective, the primary role of F# is to reduce the time-to-deployment for analytical software components in the modern enterprise. Its interoperability with all .NET languages and libraries and its ability to tackle the complexity of components such as calculation engines and data-rich analytical services offer a compelling story for businesses.

Modern programming thrives on rich spaces of data, information, and services. The most recent versions of F# greatly simplify data-rich programming through the addition of the F# Type Provider mechanism, F# LINQ Queries and a multitude of type providers for enterprise and web data standards. F# is a first-class language on a number of platforms including Mac and Linux (with tool support in Xamarin Studio, MonoDevelop, Emacs and other) and Windows (with Visual Studio, Xamarin Studio and Emacs) as well as on mobile devices and on the web using HTML5.

Documentation

Microsoft contributes a comprehensive F# documentation that includes general information about F#, language reference explaining all F# constructs as well as documentation for the standard F# library.

  • F# Language Reference - Provides reference information about the F# language, including information about keywords, symbols, and operators.

  • F# Core Library Reference - Provides reference information about the F# core library, FSharp.Core.dll.

  • F# Type Providers - Introduces information-rich programming features available in F# 3.0.

  • Real-World Functional Programming - Introduces functional programming in F# and discusses how to use F# for client-side and server-side development, numerical computing, charting and other.

Specification

  • The F# Language Specification - The specification gives an in-depth technical explanation of the F# language constructs and required compiler behavior. It discusses topics such as lexical analysis, grammar, types including type inference algorithm, expressions, patterns and other.

  • F# Component Design Guidelines - This document is a set of component design guidelines for F# programming. It describes guidelines for designing libraries for use from other languages, guidelines for F#-to-F# libraries and suggestions on coding conventions.