@@ -1818,3 +1818,112 @@ Includes commits up to `3385e58aabc91368c8e1f551650ba48705aaa285`
1818
1818
[ 4.0.0 ] : https://fsharp.org
1819
1819
[ 3.1.2 ] : http://blogs.msdn.com/b/fsharpteam/archive/2014/08/20/announcing-the-release-of-visual-f-tools-3-1-2.aspx
1820
1820
[ 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