@@ -1818,3 +1818,112 @@ Includes commits up to `3385e58aabc91368c8e1f551650ba48705aaa285`
18181818[ 4.0.0 ] : https://fsharp.org
18191819[ 3.1.2 ] : http://blogs.msdn.com/b/fsharpteam/archive/2014/08/20/announcing-the-release-of-visual-f-tools-3-1-2.aspx
18201820[ 3.1.1 ] : http://blogs.msdn.com/b/fsharpteam/archive/2014/01/22/announcing-visual-f-3-1-1-and-support-for-desktop-express.aspx
1821+
1822+
1823+ Features Added in F# Language Versions
1824+ ======================================
1825+
1826+ # [ F# 4.7] ( https://docs.microsoft.com/en-us/dotnet/fsharp/whats-new/fsharp-47 )
1827+
1828+ - Compiler support for ` LangVersion `
1829+ - Implicit ` yield ` s
1830+ - No more required double underscore (wildcard identifier)
1831+ - Indentation relaxations for parameters passed to constructors and static methods
1832+
1833+ # [ F# 4.6] ( https://docs.microsoft.com/en-us/dotnet/fsharp/whats-new/fsharp-46 )
1834+
1835+ - Anonymous records
1836+ - ` ValueOption ` module functions
1837+
1838+ # [ F# 4.5] ( https://docs.microsoft.com/en-us/dotnet/fsharp/whats-new/fsharp-45 )
1839+
1840+ - Versioning alignment of binary, package, and language
1841+ - Support for ` Span<'T> ` and related types
1842+ - Ability to produce ` byref ` returns
1843+ - The ` voidptr ` type
1844+ - The ` inref<'T> ` and ` outref<'T> ` types to represent readonly and write-only ` byref ` s
1845+ - ` IsByRefLike ` structs
1846+ - ` IsReadOnly ` structs
1847+ - Extension method support for ` byref<'T> ` /` inref<'T> ` /` outref<'T> `
1848+ - ` match! ` keyword in computation expressions
1849+ - Relaxed upcast with ` yield ` in F# sequence/list/array expressions
1850+ - Relaxed indentation with list and array expressions
1851+ - Enumeration cases emitted as public
1852+
1853+ # [ F# 4.1] ( https://fsharp.org/specs/language-spec/4.1/FSharpSpec-4.1-latest.pdf )
1854+
1855+ - Struct tuples which inter-operate with C# tuples
1856+ - Struct annotations for Records
1857+ - Struct annotations for Single-case Discriminated Unions
1858+ - Underscores in numeric literals
1859+ - Caller info argument attributes
1860+ - Result type and some basic Result functions
1861+ - Mutually referential types and modules within the same file
1862+ - Implicit ` Module ` syntax on modules with shared name as type
1863+ - Byref returns, supporting consuming C# ` ref ` -returning methods
1864+ - Error message improvements
1865+ - Support for ` fixed `
1866+
1867+ # [ F# 4.0] ( https://fsharp.org/specs/language-spec/4.0/FSharpSpec-4.0-final.pdf )
1868+
1869+ - ` printf ` on unitized values
1870+ - Extension property initializers
1871+ - Non-null provided types
1872+ - Primary constructors as functions
1873+ - Static parameters for provided methods
1874+ - ` printf ` interpolation
1875+ - Extended ` #if ` grammar
1876+ - Multiple interface instantiations
1877+ - Optional type args
1878+ - Params dictionaries
1879+
1880+ # [ F# 3.1] ( https://fsharp.org/specs/language-spec/3.1/FSharpSpec-3.1-final.pdf )
1881+
1882+ - Named union type fields
1883+ - Extensions to array slicing
1884+ - Type inference enhancements
1885+
1886+ # [ F# 3.0] ( https://fsharp.org/specs/language-spec/3.0/FSharpSpec-3.0-final.pdf )
1887+
1888+ - Type providers
1889+ - LINQ query expressions
1890+ - CLIMutable attribute
1891+ - Triple-quoted strings
1892+ - Auto-properties
1893+ - Provided units-of-measure
1894+
1895+ # [ F# 2.0] ( https://fsharp.org/specs/language-spec/2.0/FSharpSpec-2.0-April-2012.pdf )
1896+
1897+ - Active patterns
1898+ - Units of measure
1899+ - Sequence expressions
1900+ - Asynchronous programming
1901+ - Agent programming
1902+ - Extension members
1903+ - Named arguments
1904+ - Optional arguments
1905+ - Array slicing
1906+ - Quotations
1907+ - Native interoperability
1908+ - Computation expressions
1909+
1910+ # [ F# 1.1] ( https://docs.microsoft.com/en-us/archive/blogs/dsyme/a-taste-of-whats-new-in-f-1-1 )
1911+
1912+ - Interactive environment
1913+ - Object programming
1914+ - Encapsulation Extensions
1915+
1916+ # [ F# 1.0] ( https://docs.microsoft.com/en-us/archive/blogs/dsyme/welcome-to-dons-f-blog )
1917+
1918+ - Discriminated unions
1919+ - Records
1920+ - Tuples
1921+ - Pattern matching
1922+ - Type abbreviations
1923+ - Object expressions
1924+ - Structs
1925+ - Signature files
1926+ - Imperative programming
1927+ - Modules (no functors)
1928+ - Nested modules
1929+ - .NET Interoperability
0 commit comments