About F#

F# 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 latest version of F# (3.0) greatly simplifies information-rich analytical programming through the addition of F# Information Rich Programming, consisting of F# LINQ Queries, the F# Type Provider mechanism, and a set of built-in 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 MonoDevelop, Emacs and other) and Windows (with Visual Studio) 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.