Content deleted Content added
Jerryobject (talk | contribs) WP:LINKs: update-standardizes, adds. |
Jerryobject (talk | contribs) →Language evolution: WP:LINKs: needless: underscores > spaces, WP:PIPEs > WP:NOPIPEs, semi-WP:EASTEREGG clarify for WP:LEAST surprise. Small WP:COPYEDITs WP:EoS WP:TERSE, cut needless word repeats. Cut needless: carriage return WP:LISTGAP whitespace characters between WP:TABLE items, needless spaces at line ends: to standardize, aid work via small screens. |
||
Line 138:
Earlier versions of the F# language were designed by [[Microsoft]] and [[Microsoft Research]] using a closed development process.
F# was first included in Visual Studio in the [[
F# originates from Microsoft Research, Cambridge, UK. The language was originally designed and implemented by [[Don Syme]],<ref name="historyMSR">{{cite web |url=https://www.microsoft.com/en-us/research/project/f-at-microsoft-research/ |title=F# Historical Acknowledgements |website=[[Microsoft]]
Andrew Kennedy contributed to the design of [[units of measure]].<ref name="historyMSR"/> The Visual F# Tools for Visual Studio are developed by Microsoft.<ref name="historyMSR"/> The F# Software Foundation developed the F# open-source compiler and tools, incorporating the open-source compiler implementation provided by the Microsoft Visual F# Tools team.<ref name="fsharporg"/>
Line 146:
|+ Summary of versions
|-
! F#<br/>version
|-
!
|valign="top"|
* Functional programming
Line 163 ⟶ 164:
* Modules (no functors)
* Nested modules
* .NET
|-
!
|
* Active patterns
Line 180 ⟶ 181:
* Computation expressions
|-
!
|
* Type providers
Line 189 ⟶ 190:
* Provided units-of-measure
|-
!
|
* Named union type fields
Line 195 ⟶ 196:
* Type inference enhancements
|-
!
|
* Printf on unitized values
Line 209 ⟶ 210:
* Params dictionaries
|-
!
|
* Struct tuples which inter-operate with C# tuples
Line 223 ⟶ 224:
* Support for 'fixed'
|-
!
|
* Versioning alignment of binary, package, and language
Line 238 ⟶ 239:
* Enumeration cases emitted as public
|-
!
|
* Anonymous record types
|-
!
|
* Implicit yields
Line 250 ⟶ 251:
* Open static classes
|-
!
|
* FSharp.Core now targets netstandard2.0 only
Line 267 ⟶ 268:
* Improved compiler analysis for library authors
|-
!
|
* Tasks
Line 275 ⟶ 276:
* “as” patterns
* Indentation syntax revisions
*
*
* Implicit integer conversions
* First-class support for .NET-style implicit conversions
Line 284 ⟶ 285:
* InlineIfLambda optimizer directive
* Resumable code
*
* Map has Keys and Values
*
*
* Informational warnings for rarely used symbolic operators
|-
!
|
* Static abstract members support in interfaces
Line 305 ⟶ 306:
* Parallel type-checking and project-checking support (experimental, can be enabled via VS setting, or by tooling authors)
* Miscellaneous bugfixes and improvements.
|-
!
|
* _.Property shorthand for (fun x -> x.Property)
* Nested record field copy and update
* while! (while bang) feature <ref>{{Cite web |url=https://devblogs.microsoft.com/dotnet/simplifying-fsharp-computations-with-the-new-while-keyword/ |title=Simplifying F# computations with the new 'while!' keyword' |
* Extended string interpolation syntax
* Use and compose string literals for printf and related functions
* Arithmetic operators in literals
* Type constraint intersection syntax
* Extended fixed binding
* Easier [<Extension>] method definition
* Static members in interfaces
* Static let in discriminated unions, records, structs, and types without primary constructors
* try-with withing seq{}, [], and [||] collection expressions
* Recursive calls and yield! within exception handler
* Tail call attribute
* [<Struct>] unions can now have > 49 cases
* Strict indentation rules
* New diagnostics from the compiler
* Switches for compiler parallelization
|}
|