F# 4.0 is the released version of the F# functional language for .NET in the VS2015 timeframe. This tag should be used for version specific questions and new features of F# 4.0.
F# 4.0 marks the first major-version release of the F# language and VS tools to include community contributions. Visual F# 4.0 was built in completely int he open by F# community developers, in partnership with the Visual F# team at Microsoft and represents the work of 38 contributors, of whom over 75% have no Microsoft affiliation. Language implementation has shifted to a fully open mode of engineering, and language delivery is shifting to be much more cross-platform and multi-editor. Language design is done in an open, collaborative way through fslang.uservoice.com.
This tag should be used for version specific questions and new features of F# 4.0.
F# 4.0 comes with a number of new language features including
- constructors as first-class functions
- simplified mutable/ref values
- normalized collections API
- Implicit quotation of method arguments
- Extended preprocessor grammar
- Rational exponents in units of measure
- Inheritance from types with multiple generic interface instantiations
- Non-nullable provided types
Extension properties in object initializers
As well as runtime optimizations of non-structural comparison operators
- the addition of convenience APIs for converting between possibly-null .NET types and F# option types
- new extension methods for System.Net.WebClient, allowing for easier usage of WebClient within F# async workflows.