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.
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#. 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.
- Tomas Petricek and Don Syme, The F# Computation Expression Zoo, in Proceedings of Practical Aspects of Declarative Languages, ACM, 2014
- 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
- Tomas Petricek, Don Syme, and Alan Mycroft, Extending Monads with Pattern Matching, in Proceedings of Haskell Symposium, ACM, 2011
- Tomas Petricek and Don Syme, Joinads: a retargetable control-flow construct for reactive, parallel and concurrent programming, in Proceedings of Practical Aspects of Declarative Languages, ACM, 2011
- 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