F Sharp (programming language): Difference between revisions

Content deleted Content added
Standardize: spacing, sentence case, date format. Add WP:LINKs.
Rescuing 2 sources and tagging 0 as dead.) #IABot (v2.0.9.5
 
(21 intermediate revisions by 12 users not shown)
Line 6:
| logo = F Sharp logo.svg
| logo size = 128px
| logo caption =
| paradigmparadigms = [[Programming paradigm#Multi-paradigm|Multi-paradigm]]: [[functional programming|functional]], [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[agent-oriented programming|agent-oriented]], [[metaprogramming]], [[Reflection (computerReflective programming)|reflective]], [[concurrent programming|concurrent]]
| family = [[ML (programming language)|ML]]: [[Caml]]]: [[OCaml]]
| designer = [[Don Syme]], [[Microsoft Research]]
| developer = [[Microsoft]], [[F Sharp Software Foundation|The F# Software Foundation]]
| released = {{Start date and age|2005}}, version 1.0
| latest_release_version = {{wikidata|property|reference|edit| Q648619 |P348}}
| latest release version = 8.0.0
| latest release datelatest_release_date = {{Startstart date and age|2023|11|14|df=yes|{{wikidata|qualifier| Q648619 |P348|P577}}}}
| latest preview version =
| latest preview date =
| typing = [[Static typing|Static]], [[Strong and weak typing|strong]], [[Type inference|inferred]]
| implementations =
Line 22:
| influenced = [[C Sharp (programming language)|C#]],<ref>for async</ref> [[Elm (programming language)|Elm]], [[F* (programming language)|F*]], [[LiveScript (programming language)|LiveScript]]
| programming language =
| operating system = [[Cross-platform software|Cross-platform]]: [[.NET]] framework, [[Mono (software)|Mono]]
| license = [[MIT License|MIT]]<ref>{{cite web |url=https://github.com/fsharp/fsharp/blob/master/License.txt |title=F# Software Foundation's License |website=[[GitHub]] |date=14 October 2021}}</ref><ref>{{cite web |url=https://github.com/Microsoft/visualfsharp/blob/master/License.txt |title=Microsoft's F# License |website=[[GitHub]] |date=16 October 2021}}</ref>
| website = {{URL|https://fsharp.org/}}
 
 
{{URL|https://learn.microsoft.com/en-us/dotnet/fsharp}}
| wikibooks = F Sharp Programming
| file ext = .fs, .fsi, .fsx, .fsscript
}}
'''F#''' (pronounced '''F sharp''') is a [[General-purpose programming language|general-purpose]], [[High-level programming language|high-level]], [[Strong and weak typing|strongly typed]], [[Programming paradigm#Multi-paradigm|multi-paradigm]] [[programming language]] that encompasses [[functional programming|functional]], [[imperative programming|imperative]], and [[object-oriented programming]] methods. It is most often used as a [[Cross-platform software|cross-platform]] [[Common Language Infrastructure]] (CLI) language on [[.NET]], but can also generate [[JavaScript]]<ref name="js">{{cite web |url=http://fsharp.org/use/web-apps/ |title=Using F# for Web Applications |author=The F# Software Foundation |access-date=2020-07-30}}</ref> and [[graphics processing unit]] (GPU) code.<ref name="gpgpu">{{cite web |url=http://fsharp.org/use/gpu/ |archive-url=https://web.archive.org/web/20191225110926/http://fsharp.org/use/gpu/ |url-status=dead |archive-date=2019-12-25 |title=Using F# for GPU Programming |author=The F# Software Foundation |access-date=2019-12-25}}</ref>
 
F# is developed by the [[F Sharp Software Foundation|F# Software Foundation]],<ref name="fsharporg">{{cite web |url=http://fsharp.org |title=The F# Software Foundation |author=The F# Software Foundation |access-date=2012-11-24}}</ref> [[Microsoft]] and open contributors. An [[Open-source software|open source]], cross-platform compiler for F# is available from the F# Software Foundation.<ref name="fsharposg">{{cite web |url=https://fsharp.github.io/ |title=F# Compiler (open source edition) @ github |author=The F# Software Foundation |access-date=2012-11-24 |archive-date=2013-05-17 |archive-url=https://web.archive.org/web/20130517105109/http://fsharp.github.io/ |url-status=dead }}</ref> F# is a fully supported language in [[Microsoft Visual Studio|Visual Studio]]<ref>{{cite web |url=https://docs.microsoft.com/en-us/visualstudio/ide/fsharp-visual-studio |title=Develop with Visual F# in Visual Studio |access-date=2020-07-30}}</ref> and [[JetBrains#IDEs|JetBrains Rider]].<ref>{{cite web |url=https://www.jetbrains.com/help/rider/F_Sharp.html |title=F# |access-date=2020-07-30}}</ref> [[Plug-in (computing)|Plug-ins]] supporting F# exist for many widely used editors including [[Visual Studio Code]], [[Vim (text editor)|Vim]], and [[Emacs]].
 
F# is a member of the [[ML (programming language)|ML]] language family and originated as a [[.NET Framework]] implementation of a core of the programming language [[OCaml]].<ref name="historyMSR"/><ref name="ocamlOrigins"/> It has also been influenced by [[C Sharp (programming language)|C#]],
Line 38 ⟶ 41:
 
===Versions===
 
{| class="wikitable"
|-
! F#<br/>version
! Version
! Language specification
! Date
Line 47 ⟶ 49:
! [[Runtime system|Runtime]]
|-
| F# 1.x
|
| May 2005<ref>{{cite web|last=Syme|first=Don|title=F# 1.0.8 released|url=http://blogs.msdn.com/b/dsyme/archive/2005/05/21/420795.aspx|publisher=Microsoft|access-date=September 7, 2014}}</ref>
Line 53 ⟶ 55:
|[[.NET Framework|.NET]] 1.0 - 3.5
|-
| F# 2.0
| [http://fsharp.org/specs/language-spec/index.html#f-20 August 2010]
| April 2010<ref>{{cite web|last=Syme|first=Don|title=F# 2.0 released as part of Visual Studio 2010|url=http://blogs.msdn.com/b/dsyme/archive/2010/04/12/f-2-0-released-as-part-of-visual-studio-2010.aspx|publisher=Microsoft|access-date=September 7, 2014}}</ref>
Line 59 ⟶ 61:
|[[.NET Framework|.NET]] 2.0 - 4.0, [[Mono (software)|Mono]]
|-
| F# 3.0
| [http://fsharp.org/specs/language-spec/index.html#f-30 November 2012]
| August 2012<ref>{{cite web|last=Zander|first=Jason|title=Visual Studio 2012 and .NET Framework 4.5 released to the web|url=http://blogs.msdn.com/b/jasonz/archive/2012/08/15/visual-studio-2012-and-net-framework-4-5-released-to-the-web.aspx|publisher=Microsoft|access-date=September 7, 2014}}</ref>
Line 65 ⟶ 67:
|[[.NET Framework|.NET]] 2.0 - 4.5, [[Mono (software)|Mono]]
|-
| F# 3.1
| [http://fsharp.org/specs/language-spec/index.html#f-31 November 2013]
| October 2013<ref>{{cite web|title=Visual Studio 2013 released to web|date=17 October 2013 |url=http://blogs.msdn.com/b/visualstudio/archive/2013/10/17/visual-studio-2013-released-to-web.aspx|publisher=Microsoft|access-date=September 7, 2014}}</ref>
|[[Linux]], [[macOS]], [[Microsoft Windows|Windows]];<br/>[[JavaScript]],<ref name="js"/> [[Graphics processing unit|GPU]]<ref name="gpgpu"/>
|[[.NET Framework|.NET]] 2.0 - 4.5, [[Mono (software)|Mono]]
|-
| F# 4.0
| [http://fsharp.org/specs/language-spec/index.html#f-40 January 2016]
| July 2015<ref>{{cite web|title=Announcing the RTM of Visual F# 4.0|url=http://blogs.msdn.com/b/dotnet/archive/2015/07/20/announcing-the-rtm-of-visual-f-4-0.aspx|publisher=Microsoft|access-date=September 15, 2015}}</ref>
Line 77 ⟶ 79:
|<!-- [[.NET Framework|.NET]] 2.0 - 4.5, [[Mono (software)|Mono]] -->
|-
|F# 4.1
| [http://fsharp.org/specs/language-spec/index.html#f-41 May 2018]
|March 2017<ref>{{Cite news|url=https://blogs.msdn.microsoft.com/dotnet/2017/03/07/announcing-f-4-1-and-the-visual-f-tools-for-visual-studio-2017-2/|title=Announcing F# 4.1 and the Visual F# Tools for Visual Studio 2017|access-date=2017-03-08|language=en-US}}</ref>
Line 84 ⟶ 86:
|[[.NET Framework|.NET]] 3.5 - 4.6.2, [[.NET]], [[Mono (software)|Mono]]
|-
|F# 4.5
|
|August 2018<ref>{{cite web|title=Announcing F# 4.5|date=14 August 2018|url=https://blogs.msdn.microsoft.com/dotnet/2018/08/14/announcing-f-4-5/|publisher=Microsoft|access-date=August 14, 2018}}</ref>
Line 91 ⟶ 93:
| [[.NET Framework|.NET]] 4.5 - 4.7.2,<ref>{{Cite web|url=https://www.nuget.org/packages/FSharp.Core/4.5.0|title=FSharp.Core 4.5.0}}</ref> [[.NET]] Core SDK 2.1.400<ref>{{cite web|title=Download .NET Core 2.1 (Linux, macOS, and Windows)|url=https://dotnet.microsoft.com/download/dotnet/2.1|publisher=Microsoft|access-date=May 13, 2021}}</ref>
|-
|F# 4.6
|
|March 2019<ref>{{cite web|title=Announcing F# 4.6|date=29 March 2019|url=https://devblogs.microsoft.com/dotnet/announcing-f-4-6/|publisher=Microsoft|access-date=March 29, 2019}}</ref>
Line 98 ⟶ 100:
| [[.NET Framework|.NET]] 4.5 - 4.7.2,<ref>{{Cite web|url=https://www.nuget.org/packages/FSharp.Core/4.6.0|title=FSharp.Core 4.6.0}}</ref> [[.NET]] Core SDK 2.2.300<ref>{{cite web|title=Download .NET Core 2.2 (Linux, macOS, and Windows)|url=https://dotnet.microsoft.com/download/dotnet/2.2|publisher=Microsoft|access-date=May 13, 2021}}</ref>
|-
|F# 4.7
|
|September 2019<ref>{{cite web|title=Announcing F# 4.7|date=23 September 2019|url=https://devblogs.microsoft.com/dotnet/announcing-f-4-7/|publisher=Microsoft|access-date=September 23, 2019}}</ref>
Line 105 ⟶ 107:
| [[.NET Framework|.NET]] 4.5 - 4.8,<ref>{{Cite web|url=https://www.nuget.org/packages/FSharp.Core/4.7.0|title=FSharp.Core 4.7.0}}</ref> [[.NET]] Core SDK 3.0.100<ref>{{cite web|title=Download .NET Core 3.0 (Linux, macOS, and Windows)|url=https://dotnet.microsoft.com/download/dotnet/3.0|publisher=Microsoft|access-date=May 13, 2021}}</ref>
|-
|F# 5.0
|
|November 2020<ref name="blogs.msdn.microsoft.com2">{{Cite web|url=https://devblogs.microsoft.com/dotnet/announcing-f-5/|title=Announcing F# 5|date=November 10, 2020}}</ref>
Line 112 ⟶ 114:
| [[.NET]] SDK 5.0.100<ref>{{cite web|title=Download .NET 5.0 (Linux, macOS, and Windows)|url=https://dotnet.microsoft.com/download/dotnet/5.0|publisher=Microsoft|access-date=May 13, 2021}}</ref>
|-
|F# 6.0
|
|November 2021<ref>{{Cite web|url=https://devblogs.microsoft.com/dotnet/fsharp-6-is-officially-here/|title=F# 6 is officially here!|date=November 9, 2021}}</ref>
Line 118 ⟶ 120:
[[JavaScript]],<ref name="js"/> [[Graphics processing unit|GPU]]<ref name="gpgpu"/>
| [[.NET]] SDK 6.0.100<ref>{{cite web|title=Download .NET 6.0 (Linux, macOS, and Windows)|url=https://dotnet.microsoft.com/download/dotnet/6.0|publisher=Microsoft|access-date=November 14, 2021}}</ref>
 
|-
|F# 7.0
|
|November 2022<ref>{{Cite web|url=https://devblogs.microsoft.com/dotnet/announcing-fsharp-7/|title=Announcing F# 7|date=November 8, 2022}}</ref>
Line 126 ⟶ 127:
[[JavaScript]],<ref name="js"/> [[Graphics processing unit|GPU]]<ref name="gpgpu"/>
| [[.NET]] SDK 7.0.100<ref>{{cite web|title=Download .NET 7.0 (Linux, macOS, and Windows)|url=https://dotnet.microsoft.com/en-us/download/dotnet/7.0|publisher=Microsoft|access-date=November 8, 2022}}</ref>
 
|-
|F# 8.0
|
|November 2023<ref>{{Cite web|url=https://devblogs.microsoft.com/dotnet/announcing-fsharp-8/|title=Announcing F# 8|date=November 14, 2023}}</ref>
Line 134:
[[JavaScript]],<ref name="js"/> [[Graphics processing unit|GPU]]<ref name="gpgpu"/>
| [[.NET]] SDK 8.0.100<ref>{{cite web|title=Download .NET 8.0 (Linux, macOS, and Windows)|url=https://dotnet.microsoft.com/en-us/download/dotnet/8.0|publisher=Microsoft|access-date=November 14, 2023}}</ref>
|-
 
| 9.0
 
|
 
|November 2024<ref>{{Cite web|url=https://learn.microsoft.com/en-us/dotnet/fsharp/whats-new/fsharp-9|title=What's new in F# 9|date=November 12, 2024}}</ref>
|[[Linux]], [[macOS]], [[Microsoft Windows|Windows]],
[[JavaScript]],<ref name="js"/> [[Graphics processing unit|GPU]]<ref name="gpgpu"/>
| [[.NET]] SDK 9.0.0<ref>{{cite web|title=Download .NET 9.0 (Linux, macOS, and Windows)|url=https://dotnet.microsoft.com/en-us/download/dotnet/9.0|publisher=Microsoft|access-date=January 13, 2025}}</ref>
|}
 
Line 144 ⟶ 148:
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 [[Visual_StudioVisual Studio#2010 | 2010 edition]], at the same level as [[Visual Basic (.NET) | Visual Basic]] and C# (albeit as an option), and has remainedremains in subsequentall later editions, thus making the language widely available and well-supported.
 
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]] }}</ref> according to whom in the fsharp team, they say the F is for "Fun".<ref>{{cite web |url=http://www.networkworld.com/article/2271225/software/the-a-z-of-programming-languages--f-.html |title=The A-Z of programming languages: F# |last1=Edwards |first1=Kathryn |date=23 December 2008 |website=networkworld.com[[Network World]] |publisher=IDG |access-date=8 August 2016 |archive-date=13 November 2018 |archive-url=https://web.archive.org/web/20181113210720/https://www.networkworld.com/article/2271225/software/the-a-z-of-programming-languages--f-.html |url-status=dead}}</ref>
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"/>
 
{| class="wikitable"
|+ Summary of versions
|-
! F#<br/>version
! !! Features added
|-
!F# 1.0
|valign="top"|
* Functional programming
Line 169 ⟶ 174:
* Modules (no functors)
* Nested modules
* .NET Interoperabilityinteroperability
|-
!F# 2.0
|
* Active patterns
Line 186 ⟶ 191:
* Computation expressions
|-
!F# 3.0<ref>{{cite web|last=McNamara|first=Brian|title=More About F# 3.0 Language Features|url=http://blogs.msdn.com/b/fsharpteam/archive/2012/07/19/more-about-fsharp-3.0-language-features.aspx|access-date=September 7, 2014|publisher=Microsoft}}</ref>
|
* Type providers
Line 195 ⟶ 200:
* Provided units-of-measure
|-
!F# 3.1<ref>{{cite web|last=McNamara|first=Brian|title=Announcing a pre-release of F# 3.1|url=http://blogs.msdn.com/b/fsharpteam/archive/2013/06/27/announcing-a-pre-release-of-f-3-1-and-the-visual-f-tools-in-visual-studio-2013.aspx|access-date=September 7, 2014|publisher=Microsoft}}</ref>
|
* Named union type fields
Line 201 ⟶ 206:
* Type inference enhancements
|-
!F# 4.0<ref>{{Cite news|title=Announcing the RTM of Visual F# 4.0|language=en-US|url=https://blogs.msdn.microsoft.com/dotnet/2015/07/20/announcing-the-rtm-of-visual-f-4-0/|access-date=2017-03-08}}</ref>
|
* Printf on unitized values
Line 215 ⟶ 220:
* Params dictionaries
|-
!F# 4.1<ref>{{Cite news|title=Announcing F# 4.1 and the Visual F# Tools for Visual Studio 2017|language=en-US|url=https://blogs.msdn.microsoft.com/dotnet/2017/03/07/announcing-f-4-1-and-the-visual-f-tools-for-visual-studio-2017-2/|access-date=2017-03-08}}</ref>
|
* Struct tuples which inter-operate with C# tuples
Line 229 ⟶ 234:
* Support for 'fixed'
|-
!F# 4.5<ref name="blogs.msdn.microsoft.com2"/>
|
* Versioning alignment of binary, package, and language
Line 244 ⟶ 249:
* Enumeration cases emitted as public
|-
!F# 4.6
|
* Anonymous record types
|-
!F# 4.7<ref name="blogs.msdn.microsoft.com.4.7">{{Cite web|url=https://devblogs.microsoft.com/dotnet/announcing-f-4-7/|title=Announcing F# 4.7|date=23 September 2019}}</ref>
|
* Implicit yields
Line 256 ⟶ 261:
* Open static classes
|-
!F# 5.0<ref name="blogs.msdn.microsoft.com.5.0">{{Cite web|url=https://devblogs.microsoft.com/dotnet/announcing-f-5/|title=Announcing F# 5|date=10 November 2020}}</ref>
|
* FSharp.Core now targets netstandard2.0 only
Line 273 ⟶ 278:
* Improved compiler analysis for library authors
|-
!F# 6.0<ref>{{Cite web|url=https://docs.microsoft.com/en-us/dotnet/fsharp/whats-new/fsharp-6|title=What's new in F# 6 - F# Guide|date=10 March 2023 }}</ref>
|
* Tasks
Line 281 ⟶ 286:
* “as” patterns
* Indentation syntax revisions
* AdditionalMore implicit conversions
* AdditionalMore implicit upcast conversions
* Implicit integer conversions
* First-class support for .NET-style implicit conversions
Line 290 ⟶ 295:
* InlineIfLambda optimizer directive
* Resumable code
* AdditionalMore collection functions
* Map has Keys and Values
* AdditionalMore intrinsics for NativePtr
* AdditionalMore numeric types with unit annotations
* Informational warnings for rarely used symbolic operators
|-
!F# 7.0<ref>{{Cite web |url=https://devblogs.microsoft.com/dotnet/announcing-fsharp-7/ |title=Announcing F# 7| |date=8 November 2022}}</ref>
|
* Static abstract members support in interfaces
Line 311 ⟶ 316:
* Parallel type-checking and project-checking support (experimental, can be enabled via VS setting, or by tooling authors)
* Miscellaneous bugfixes and improvements.
 
 
|-
!F# 8.0<ref>{{Cite web|url=https://devblogs.microsoft.com/dotnet/announcing-fsharp-8/|title=Announcing F# 8| date=14 November 2023}}</ref>
|
* _.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' | date=20 September 2023}}</ref>
* 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 withingwithin 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
|-
 
! 9.0<ref>{{Cite web|url=https://learn.microsoft.com/en-us/dotnet/fsharp/whats-new/fsharp-9|title=What's new in F# 9| date=12 November 2024}}</ref>
 
|
 
* Nullable reference types
* Discriminated union .Is* properties
* Partial active patterns can return bool instead of unit option
* Prefer extension methods to intrinsic properties when arguments are provided
* Empty-bodied computation expressions
* Hash directives are allowed to take non-string arguments
* Extended #help directive in fsi to show documentation in the REPL
* Allow #nowarn to support the FS prefix on error codes to disable warnings
* Warning about TailCall attribute on non-recursive functions or let-bound values
* Enforce attribute targets
* Updates to the standard library (FSharp.Core)
* Developer productivity improvements
* Performance improvements
* Improvements in tooling
|}
 
Line 377 ⟶ 394:
Age : int }
</syntaxhighlight>
Records can be created as {{code|lang=fsharp|code=let r = { Name="AB"; Age=42 } }}. The <code>with</code> keyword is used to create a copy of a record, as in {{code|lang=fsharp|code={ r with Name="CD" } }}, which creates a new record by copying <code>r</code> and changing the value of the <code>Name</code> field (assuming the record created in the last example was named <code>r</code>).
 
A [[tagged union|discriminated union]] type is a [[type-safe]] version of [[union (computer science)|C unions]]. For example,
Line 421 ⟶ 438:
Like other [[Common Language Infrastructure]] (CLI) languages, F# can use CLI types through object-oriented programming.<ref name="overview"/> F# support for object-oriented programming in expressions includes:
* Dot-notation, e.g., {{code|lang=fsharp|code=x.Name}}
* Object expressions, e.g., {{ code|lang=fsharp| code={ new obj() with member x.ToString() = "hello" } }}
* Object construction, e.g., {{code|lang=fsharp|code=new Form()}}
* Type tests, e.g., {{code|lang=fsharp|code=x :? string}}
Line 516 ⟶ 533:
F# allows some forms of syntax customizing via [[metaprogramming]] to support embedding custom [[___domain-specific language]]s within the F# language, particularly through computation expressions.<ref name="overview"/>
 
F# includes a feature for run-time meta-programming called quotations.<ref name="quotations">{{cite web |url=http://msdn.microsoft.com/en-us/library/dd233212.aspx |title=Code Quotations (F#) |access-date=2012-11-24}}</ref> A quotation expression evaluates to an abstract syntax tree representation of the F# expressions. Similarly, definitions labelled with the <code>[&lt;ReflectedDefinition&gt;]</code> attribute can also be accessed in their quotation form. F# quotations are used for various purposes including to compile F# code into [[JavaScript]]<ref name="js"/> and [[Graphics processing unit|GPU]]<ref name="gpgpu"/> code. (uotationsQuotations represent their F# code expressions as data for use by other parts of the program while requiring it to be syntactically correct F# code.
 
===Information-rich programming===
Line 598 ⟶ 615:
The [https://safe-stack.github.io/ SAFE Stack] is an end-to-end F# stack to develop web applications. It uses [[ASP.NET Core]] on the server side and [https://fable.io Fable] on the client side.<ref>{{Cite web|url=http://fable.io/|title=Fable: JavaScript you can be proud of!|website=fable.io|access-date=2017-12-09}}</ref>
 
An alternativeAlternative end-to-end F# optionoptions isinclude the [[WebSharper]] framework and the Oxpecker framework.<ref name="websharper">{{cite web |url=http://websharper.com |title=WebSharper home |author=Intellifactory |access-date=2012-11-24}}</ref>
 
===Cross-platform app development===
 
F# can be used together with the [https://visualstudio.microsoft.com/xamarin/ Visual Studio Tools for Xamarin] to develop apps for [[iOS]] and [[Android (operating system)|Android]]. The [https://fsprojects.github.iocom/fsprojects/Fabulous/ Fabulous] library provides a more comfortable functional interface.
 
=== Analytical programming ===
Line 786 ⟶ 803:
{{Wikibooks|F Sharp Programming}}
* {{Official website|https://fsharp.org/}} The F# Software Foundation
* [https://fsharp.github.io The F# Open Source Group at GitHub] {{Webarchive|url=https://web.archive.org/web/20130517105109/http://fsharp.github.io/ |date=2013-05-17 }}
* [https://fsharp.net/ The Visual F# Developer Center] {{Webarchive|url=https://web.archive.org/web/20081119161341/http://www.fsharp.net/ |date=2008-11-19}}
* [https://web.archive.org/web/20121130163443/http://www.tryfsharp.org/ Try F#, for learning F# in a web browser]
Line 792 ⟶ 809:
* [https://learn.microsoft.com/en-us/archive/blogs/fsharpteam/ The Visual F# team blog]
* [https://www.microsoft.com/en-us/research/project/f-at-microsoft-research/ The original Microsoft Research website for F#]
 
* [https://web.archive.org/web/20110715231625/http://www.ctocorner.com/fsharp/book/default.aspx The F# Survival Guide, Dec 2009 (Web-based book)]
* [http://fsharp.org/specs/language-spec/ The F# Language Specification]
Line 806 ⟶ 822:
[[Category:.NET programming languages]]
[[Category:Cross-platform free software]]
[[Category:High-level programming languages]]
[[Category:Functional languages]]
[[Category:Microsoft free software]]
Line 818 ⟶ 835:
[[Category:Software using the MIT license]]
[[Category:Statically typed programming languages]]
<!-- Hidden categories below -->
[[Category:Articles with example OCaml code]]<!-- Code example category family member nearest F#. -->