Content deleted Content added
Change awkward wording. |
Citation bot (talk | contribs) Add: date, website. Removed parameters. | Use this bot. Report bugs. | Suggested by Spinixster | Category:Cross-platform free software | #UCB_Category 395/433 |
||
Line 147:
F# was first included in Visual Studio in the [[Visual_Studio#2010 | 2010 edition]], at the same level as [[Visual Basic (.NET) | Visual Basic]] and C# (albeit as an option), and has remained in subsequent 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 |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"/>
Line 274:
* 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 361:
* [[List comprehension]]
* [[Monad (functional programming)|Monad]] pattern support (called ''computation expressions''<ref>{{Cite web|title=F Sharp Programming/Computation Expressions - Wikibooks, open books for an open world|url=https://en.wikibooks.org/wiki/F_Sharp_Programming/Computation_Expressions|access-date=2022-01-21|website=en.wikibooks.org|language=en}}</ref>)
* [[Tail call|Tail Call Optimisation]]<ref>{{Cite web |last=kexugit |title=Tail calls in F# |url=https://docs.microsoft.com/en-us/archive/blogs/fsharpteam/tail-calls-in-f |access-date=2022-04-22 |website=docs.microsoft.com |date=8 July 2011 |language=en-us}}</ref>
F# is an expression-based language using [[eager evaluation]] and also in some instances [[lazy evaluation]]. Every statement in F#,
Line 458:
[[Inversion of control]] in F# follows this pattern.<ref name="aw"/>
Since version 6.0, F# supports creating, consuming and returning .NET tasks directly. <ref>{{cite web |url=https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/task-expressions | title=Task Expressions| date=19 April 2022|access-date=2023-01-15}}</ref>
<syntaxhighlight lang="fsharp">
Line 489:
The F# type system supports [[Units of measurement|units of measure]] checking for numbers.<ref name="units-msdn">{{cite web |url=http://msdn.microsoft.com/en-us/library/dd233243.aspx |title=Units of Measure (F#) |access-date=2012-11-24}}</ref>
In F#, you can assign units of measure, such as meters or kilograms, to floating point, unsigned integer<ref name="units extended">{{cite web|url=https://github.com/fsharp/fslang-design/blob/main/FSharp-6.0/FS-1091-Extend-Units-of-Measure.md| title=Extend Units of Measure to Include More Numeric Types | website=[[GitHub]] }}</ref> and signed integer values. This allows the compiler to check that arithmetic involving these values is dimensionally consistent, helping to prevent common programming mistakes by ensuring that, for instance, lengths aren't mistakenly added to times.
The units of measure feature integrates with F# type inference to require minimal type annotations in user code.<ref name="units">{{cite web |url=http://blogs.msdn.com/b/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx |title=Units of Measure in F#: Part One, Introducing Units |access-date=2012-11-24}}</ref>
Line 587:
* [[Visual Studio Code]] contains full support for F# via the [http://ionide.io/ Ionide extension].
* F# can be developed with any text editor. Specific support exists in editors such as [[Emacs]].
* [[JetBrains]] Rider is optimized for the development of F# Code starting with release 2019.1.<ref>{{cite web|title=Rider 2019.1 Kicks off its Early Access Program!|author=Alexander Kurakin |date=15 March 2019 |url=https://blog.jetbrains.com/dotnet/2019/03/15/rider-2019-1-kicks-off-early-access-program/}}</ref>
* [[LINQPad]] has supported F# since version 2.x.{{whose|date=May 2022}}
===Comparison of integrated development environments===
Line 606:
=== Analytical programming ===
Among others, F# is used for quantitative finance programming,<ref>{{cite web |url=http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000006794 |title=Microsoft Case Studies:Microsoft Visual Studio 2012 - Financial Services Firm |website=[[Microsoft]] |access-date=2012-11-25}}</ref> energy trading and portfolio optimization,<ref>{{cite web |url=http://blogs.msdn.com/b/dsyme/archive/2011/01/12/f-for-energy-trading-and-energy-portfolio-optimization.aspx |title=F# for Energy Trading and Portfolio Optimization |access-date=2012-11-25}}</ref> machine learning,<ref>{{cite web |url=http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000005226 |title=Microsoft Case Study: Grange Insurance |website=[[Microsoft]] |access-date=2012-11-25}}</ref> business intelligence<ref>{{cite book |chapter-url=http://dl.acm.org/citation.cfm?id=1362702.1362709&coll=ACM&dl=ACM&type=series&idx=SERIES824%25E2%2588%2582=series&WantType=Proceedings&title=ICFP |chapter=Learning with F# |doi=10.1145/1362702.1362709 |access-date=2012-11-25|title=Proceedings of the 4th ACM SIGPLAN workshop on Commercial users of functional programming - CUFP '07 |year=2007 |last1=Trelford |first1=Phil
In the 2010s, F# has been positioned as an optimized alternative to [[C Sharp (programming language)|C#]]. F#'s scripting ability and inter-language compatibility with all Microsoft products have made it popular among developers.<ref>{{cite web |url=https://fsharp.org/testimonials/ |title=F# Developer Testimonials |access-date=May 25, 2021}}</ref>
===Scripting===
F# can be used as a scripting language, mainly for desktop [[read–eval–print loop]] (REPL) scripting.<ref>{{cite web |url=https://docs.microsoft.com/en-gb/archive/blogs/chrsmith/scripting-in-f |title=Scripting in F# |date=12 September 2008 |access-date=2020-01-17}}</ref>
==Open-source community==
|