F# is a succinct, expressive, and efficient functional and object-oriented language for Microsoft .NET that helps you write simple code to solve complex problems.
These pages are the historical home of F# at Microsoft Research. For the latest information on F# today, see the links to the right.
F# brings you type safe, succinct, efficient, and expressive functional programming language. This simple and pragmatic language has particular strengths in data-oriented programming, parallel I/O programming, parallel CPU programming, scripting, and algorithmic development. It enables you to access a huge library and tools base and comes with a strong set of development tools. F# combines the advantages of typed functional programming with high-quality, well-supported modern runtime systems. F# 3.0 incorporates ground-breaking features in integrating Internet-scale information sources and services into strongly typed programming languages. The active F# community contributes tools for Emacs, Vim, Linux, Mac, iOS, Windows, Android, JavaScript, and HTML5.
Microsoft Research contributes to F# through the language design and Try F#.
F# is open source under an OSI-approved license (Apache 2.0) and is available across multiple platforms through the F# Software Foundation. You can contribute to F# in many ways, including through that organization.
Microsoft make free Visual F# Tools for Visual Studio and these tools are also included in Visual Studio Professional and Ultimate. This makes F# one of the few languages with both a strong open source community and a supported, professional product from Microsoft.
F# originated at Microsoft Research, Cambridge. The Microsoft Research team continues to partner with teams across Microsoft and with external open-source organizations, researchers, companies and users to break new ground in programming language systems, including F#. The originator of F#, Don Syme, and other Microsoft Research staff continue to contribute to F#, its ecosystem and research based around F#.
For more information on using F# today, see the links to the right.
- Don Syme, Kenji Takeda, Keith Battocchi, Donna Malayeri, and Tomas Petricek, Themes in Information-Rich Functional Programming for Internet-Scale Data Sources, ACM, 24 January 2013
- Don Syme, Keith Battocchi, and Gordon Hodgenson, Creating a Type Provider (F#), Microsoft, 12 January 2013
- Don Syme, Adam Granicz, and Antonio Cisternino, Expert F# 3.0, Apress, 7 November 2012
- Don Syme, Keith Battocchi, Kenji Takeda, Donna Malayeri, Jomo Fisher, Jack Hu, Tao Liu, Brian McNamara, Daniel Quirk, Matteo Taveggia, Wonseok Chae, Uladzimir Matsveyeu, and Tomas Petricek, F#3.0 - Strongly-Typed Language Support for Internet-Scale Information Sources, no. MSR-TR-2012-101, 21 September 2012
- Donald Syme, Tomas Petricek, and Dmitry Lomov, The F# Asynchronous Programming Model, in In Proceedings of Principles and Applications of Declarative Languages, 2011, ACM SIGPLAN, 2011
- Tomas Petricek and Donald Syme, Collecting hollywood's garbage: avoiding space-leaks in composite events, in ISMM '10 Proceedings of the 2010 international symposium on Memory management , ACM SIGPLAN, 2010
- Don Syme, The F# Draft Language Specification, Microsoft, 1 February 2009
- Don Syme, Introduction to F# (recorded lecture), Microsoft, 12 February 2008
- Don Syme, Parallel Functional Programming on .NET with F# (recorded lecture), Microsoft, 12 February 2008
- Don Syme, Adam Granicz, and Antonio Cisternino, Expert F#, Springer Verlag, 10 January 2008
