CINXE.COM
F Sharp (programming language) - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>F Sharp (programming language) - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"00e076ab-4563-492f-9f99-475113e8f0e4","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"F_Sharp_(programming_language)","wgTitle":"F Sharp (programming language)","wgCurRevisionId":1269320157,"wgRevisionId":1269320157,"wgArticleId":239964,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["CS1 errors: missing title","CS1 errors: bare URL","Articles with short description","Short description matches Wikidata","Restricted titles (non-leading number sign)","All articles with specifically marked weasel-worded phrases","Articles with specifically marked weasel-worded phrases from May 2022","Articles with excerpts","Webarchive template wayback links","Articles with example OCaml code",".NET programming languages", "Cross-platform free software","High-level programming languages","Functional languages","Microsoft free software","Microsoft programming languages","Microsoft Research","ML programming language family","OCaml programming language family","Pattern matching programming languages","Programming languages created in 2005","Programming languages supporting units of measure","Software using the Apache license","Software using the MIT license","Statically typed programming languages"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"F_Sharp_(programming_language)","wgRelevantArticleId":239964,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{ "pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":50000,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q648619","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.pygments":"ready", "skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","ext.scribunto.logs","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022", "ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.16"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/F_Sharp_logo.svg/1200px-F_Sharp_logo.svg.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="1139"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/F_Sharp_logo.svg/800px-F_Sharp_logo.svg.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="759"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/F_Sharp_logo.svg/640px-F_Sharp_logo.svg.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="607"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="F Sharp (programming language) - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/F_Sharp_(programming_language)"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=F_Sharp_(programming_language)&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/F_Sharp_(programming_language)"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-F_Sharp_programming_language rootpage-F_Sharp_programming_language skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" title="Main menu" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li><li id="n-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages"><span>Special pages</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=F+Sharp+%28programming+language%29" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=F+Sharp+%28programming+language%29" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=F+Sharp+%28programming+language%29" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=F+Sharp+%28programming+language%29" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-History" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#History"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>History</span> </div> </a> <button aria-controls="toc-History-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle History subsection</span> </button> <ul id="toc-History-sublist" class="vector-toc-list"> <li id="toc-Versions" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Versions"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Versions</span> </div> </a> <ul id="toc-Versions-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Language_evolution" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Language_evolution"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Language evolution</span> </div> </a> <ul id="toc-Language_evolution-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Language_overview" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Language_overview"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Language overview</span> </div> </a> <button aria-controls="toc-Language_overview-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Language overview subsection</span> </button> <ul id="toc-Language_overview-sublist" class="vector-toc-list"> <li id="toc-Functional_programming" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Functional_programming"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Functional programming</span> </div> </a> <ul id="toc-Functional_programming-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Imperative_programming" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Imperative_programming"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>Imperative programming</span> </div> </a> <ul id="toc-Imperative_programming-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Object-oriented_programming" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Object-oriented_programming"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>Object-oriented programming</span> </div> </a> <ul id="toc-Object-oriented_programming-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Asynchronous_programming" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Asynchronous_programming"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4</span> <span>Asynchronous programming</span> </div> </a> <ul id="toc-Asynchronous_programming-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Parallel_programming" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Parallel_programming"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5</span> <span>Parallel programming</span> </div> </a> <ul id="toc-Parallel_programming-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Units_of_measure" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Units_of_measure"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.6</span> <span>Units of measure</span> </div> </a> <ul id="toc-Units_of_measure-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Metaprogramming" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Metaprogramming"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.7</span> <span>Metaprogramming</span> </div> </a> <ul id="toc-Metaprogramming-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Information-rich_programming" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Information-rich_programming"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.8</span> <span>Information-rich programming</span> </div> </a> <ul id="toc-Information-rich_programming-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Agent_programming" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Agent_programming"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.9</span> <span>Agent programming</span> </div> </a> <ul id="toc-Agent_programming-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Development_tools" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Development_tools"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Development tools</span> </div> </a> <button aria-controls="toc-Development_tools-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Development tools subsection</span> </button> <ul id="toc-Development_tools-sublist" class="vector-toc-list"> <li id="toc-Comparison_of_integrated_development_environments" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Comparison_of_integrated_development_environments"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>Comparison of integrated development environments</span> </div> </a> <ul id="toc-Comparison_of_integrated_development_environments-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Application_areas" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Application_areas"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Application areas</span> </div> </a> <button aria-controls="toc-Application_areas-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Application areas subsection</span> </button> <ul id="toc-Application_areas-sublist" class="vector-toc-list"> <li id="toc-Web_programming" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Web_programming"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Web programming</span> </div> </a> <ul id="toc-Web_programming-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Cross-platform_app_development" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Cross-platform_app_development"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>Cross-platform app development</span> </div> </a> <ul id="toc-Cross-platform_app_development-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Analytical_programming" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Analytical_programming"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3</span> <span>Analytical programming</span> </div> </a> <ul id="toc-Analytical_programming-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Scripting" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Scripting"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.4</span> <span>Scripting</span> </div> </a> <ul id="toc-Scripting-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Open-source_community" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Open-source_community"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Open-source community</span> </div> </a> <ul id="toc-Open-source_community-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Compatibility" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Compatibility"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Compatibility</span> </div> </a> <ul id="toc-Compatibility-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Examples" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Examples"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Examples</span> </div> </a> <ul id="toc-Examples-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Notes" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Notes"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>Notes</span> </div> </a> <ul id="toc-Notes-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">11</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" title="Table of Contents" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">F Sharp (programming language)</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 32 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-32" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">32 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%A5%D9%81_%D8%B4%D8%A7%D8%B1%D8%A8_(%D9%84%D8%BA%D8%A9_%D8%A8%D8%B1%D9%85%D8%AC%D8%A9)" title="إف شارب (لغة برمجة) – Arabic" lang="ar" hreflang="ar" data-title="إف شارب (لغة برمجة)" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/F_Sharp" title="F Sharp – Catalan" lang="ca" hreflang="ca" data-title="F Sharp" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/F_Sharp" title="F Sharp – Czech" lang="cs" hreflang="cs" data-title="F Sharp" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/F_Sharp" title="F Sharp – Danish" lang="da" hreflang="da" data-title="F Sharp" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/F-Sharp" title="F-Sharp – German" lang="de" hreflang="de" data-title="F-Sharp" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/F_Sharp" title="F Sharp – Spanish" lang="es" hreflang="es" data-title="F Sharp" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%A7%D9%81_%D8%B4%D8%A7%D8%B1%D9%BE" title="اف شارپ – Persian" lang="fa" hreflang="fa" data-title="اف شارپ" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/F_Sharp" title="F Sharp – French" lang="fr" hreflang="fr" data-title="F Sharp" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/F_%EC%83%A4%ED%94%84" title="F 샤프 – Korean" lang="ko" hreflang="ko" data-title="F 샤프" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-io mw-list-item"><a href="https://io.wikipedia.org/wiki/F_Sharp_(programifo-linguo)" title="F Sharp (programifo-linguo) – Ido" lang="io" hreflang="io" data-title="F Sharp (programifo-linguo)" data-language-autonym="Ido" data-language-local-name="Ido" class="interlanguage-link-target"><span>Ido</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/F_Sharp" title="F Sharp – Italian" lang="it" hreflang="it" data-title="F Sharp" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/F_sharp" title="F sharp – Hebrew" lang="he" hreflang="he" data-title="F sharp" data-language-autonym="עברית" data-language-local-name="Hebrew" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-ka mw-list-item"><a href="https://ka.wikipedia.org/wiki/F_Sharp" title="F Sharp – Georgian" lang="ka" hreflang="ka" data-title="F Sharp" data-language-autonym="ქართული" data-language-local-name="Georgian" class="interlanguage-link-target"><span>ქართული</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/F_Sharp" title="F Sharp – Hungarian" lang="hu" hreflang="hu" data-title="F Sharp" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%8E%E0%B4%AB%E0%B5%8D_%E0%B4%B7%E0%B4%BE%E0%B5%BC%E0%B4%AA%E0%B5%8D%E0%B4%AA%E0%B5%8D_(%E0%B4%AA%E0%B5%8D%E0%B4%B0%E0%B5%8B%E0%B4%97%E0%B5%8D%E0%B4%B0%E0%B4%BE%E0%B4%AE%E0%B4%BF%E0%B4%99%E0%B5%8D_%E0%B4%AD%E0%B4%BE%E0%B4%B7)" title="എഫ് ഷാർപ്പ് (പ്രോഗ്രാമിങ് ഭാഷ) – Malayalam" lang="ml" hreflang="ml" data-title="എഫ് ഷാർപ്പ് (പ്രോഗ്രാമിങ് ഭാഷ)" data-language-autonym="മലയാളം" data-language-local-name="Malayalam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/F_Sharp_(bahasa_pengaturcaraan)" title="F Sharp (bahasa pengaturcaraan) – Malay" lang="ms" hreflang="ms" data-title="F Sharp (bahasa pengaturcaraan)" data-language-autonym="Bahasa Melayu" data-language-local-name="Malay" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/F_Sharp" title="F Sharp – Dutch" lang="nl" hreflang="nl" data-title="F Sharp" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/F_Sharp" title="F Sharp – Japanese" lang="ja" hreflang="ja" data-title="F Sharp" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/F_Sharp" title="F Sharp – Norwegian Bokmål" lang="nb" hreflang="nb" data-title="F Sharp" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegian Bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/F_Sharp" title="F Sharp – Polish" lang="pl" hreflang="pl" data-title="F Sharp" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/F_Sharp" title="F Sharp – Portuguese" lang="pt" hreflang="pt" data-title="F Sharp" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/F_Sharp" title="F Sharp – Russian" lang="ru" hreflang="ru" data-title="F Sharp" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/F_sharp" title="F sharp – Simple English" lang="en-simple" hreflang="en-simple" data-title="F sharp" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/F_Sharp" title="F Sharp – Slovak" lang="sk" hreflang="sk" data-title="F Sharp" data-language-autonym="Slovenčina" data-language-local-name="Slovak" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/F_Sharp" title="F Sharp – Serbian" lang="sr" hreflang="sr" data-title="F Sharp" data-language-autonym="Српски / srpski" data-language-local-name="Serbian" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/F_sharp" title="F sharp – Finnish" lang="fi" hreflang="fi" data-title="F sharp" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/F_Sharp" title="F Sharp – Swedish" lang="sv" hreflang="sv" data-title="F Sharp" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2%E0%B9%80%E0%B8%AD%E0%B8%9F%E0%B8%8A%E0%B8%B2%E0%B8%A3%E0%B9%8C%E0%B8%9B" title="ภาษาเอฟชาร์ป – Thai" lang="th" hreflang="th" data-title="ภาษาเอฟชาร์ป" data-language-autonym="ไทย" data-language-local-name="Thai" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/F_Sharp" title="F Sharp – Turkish" lang="tr" hreflang="tr" data-title="F Sharp" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/F_Sharp" title="F Sharp – Ukrainian" lang="uk" hreflang="uk" data-title="F Sharp" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/F%E2%99%AF" title="F♯ – Cantonese" lang="yue" hreflang="yue" data-title="F♯" data-language-autonym="粵語" data-language-local-name="Cantonese" class="interlanguage-link-target"><span>粵語</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/F%E2%99%AF" title="F♯ – Chinese" lang="zh" hreflang="zh" data-title="F♯" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q648619#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/F_Sharp_(programming_language)" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:F_Sharp_(programming_language)" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/F_Sharp_(programming_language)"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=F_Sharp_(programming_language)&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/F_Sharp_(programming_language)"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=F_Sharp_(programming_language)&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/F_Sharp_(programming_language)" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/F_Sharp_(programming_language)" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=F_Sharp_(programming_language)&oldid=1269320157" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=F_Sharp_(programming_language)&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=F_Sharp_%28programming_language%29&id=1269320157&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FF_Sharp_%28programming_language%29"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FF_Sharp_%28programming_language%29"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=F_Sharp_%28programming_language%29&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=F_Sharp_(programming_language)&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:F_Sharp_(programming_language)" hreflang="en"><span>Wikimedia Commons</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q648619" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Microsoft programming language</div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">Not to be confused with <a href="/wiki/F_(programming_language)" title="F (programming language)">F (programming language)</a> or <a href="/wiki/F*_(programming_language)" title="F* (programming language)">F* (programming language)</a>.</div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable plainlinks selfreference noprint">The correct title of this article is <b>F#</b>. The substitution of the <a href="/wiki/Number_sign" title="Number sign">#</a> is due to <a href="/wiki/Wikipedia:Naming_conventions_(technical_restrictions)#Clashes_with_wiki_markup/HTML_syntax" title="Wikipedia:Naming conventions (technical restrictions)">technical restrictions</a>.</div> <style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1257001546">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme) div:not(.notheme){background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table tr{display:table-row!important}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox vevent"><caption class="infobox-title summary">F#</caption><tbody><tr><td colspan="2" class="infobox-image"><span typeof="mw:File"><a href="/wiki/File:F_Sharp_logo.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/6/66/F_Sharp_logo.svg/128px-F_Sharp_logo.svg.png" decoding="async" width="128" height="121" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/66/F_Sharp_logo.svg/192px-F_Sharp_logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/66/F_Sharp_logo.svg/256px-F_Sharp_logo.svg.png 2x" data-file-width="236" data-file-height="224" /></a></span></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Programming_paradigm" title="Programming paradigm">Paradigms</a></th><td class="infobox-data"><a href="/wiki/Programming_paradigm#Multi-paradigm" title="Programming paradigm">Multi-paradigm</a>: <a href="/wiki/Functional_programming" title="Functional programming">functional</a>, <a href="/wiki/Imperative_programming" title="Imperative programming">imperative</a>, <a href="/wiki/Object-oriented_programming" title="Object-oriented programming">object-oriented</a>, <a href="/wiki/Agent-oriented_programming" title="Agent-oriented programming">agent-oriented</a>, <a href="/wiki/Metaprogramming" title="Metaprogramming">metaprogramming</a>, <a href="/wiki/Reflective_programming" title="Reflective programming">reflective</a>, <a href="/wiki/Concurrent_programming" class="mw-redirect" title="Concurrent programming">concurrent</a></td></tr><tr><th scope="row" class="infobox-label">Family</th><td class="infobox-data"><a href="/wiki/ML_(programming_language)" title="ML (programming language)">ML</a>: <a href="/wiki/Caml" title="Caml">Caml</a>: <a href="/wiki/OCaml" title="OCaml">OCaml</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_design" title="Software design">Designed by</a></th><td class="infobox-data"><a href="/wiki/Don_Syme" title="Don Syme">Don Syme</a>, <a href="/wiki/Microsoft_Research" title="Microsoft Research">Microsoft Research</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_developer" class="mw-redirect" title="Software developer">Developer</a></th><td class="infobox-data organiser"><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a>, <a href="/wiki/F_Sharp_Software_Foundation" title="F Sharp Software Foundation">The F# Software Foundation</a></td></tr><tr><th scope="row" class="infobox-label">First appeared</th><td class="infobox-data">2005<span class="noprint">; 20 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">2005</span>)</span>, version 1.0</td></tr><tr><td colspan="2" class="infobox-full-data"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1257001546"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_release_life_cycle" title="Software release life cycle">Stable release</a></th><td class="infobox-data"><div style="margin:0px;">9.0<sup id="cite_ref-wikidata-b7795cdbe1c986c396615d64dda8a870f8c35d4c-v18_1-0" class="reference"><a href="#cite_note-wikidata-b7795cdbe1c986c396615d64dda8a870f8c35d4c-v18-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q648619?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> / 12 November 2024<span class="noprint">; 3 months ago</span><span style="display:none"> (<span class="bday dtstart published updated">12 November 2024</span>)</span></div></td></tr><tr style="display:none"><td colspan="2"> </td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Type_system" title="Type system">Typing discipline</a></th><td class="infobox-data"><a href="/wiki/Static_typing" class="mw-redirect" title="Static typing">Static</a>, <a href="/wiki/Strong_and_weak_typing" title="Strong and weak typing">strong</a>, <a href="/wiki/Type_inference" title="Type inference">inferred</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Operating_system" title="Operating system">OS</a></th><td class="infobox-data"><a href="/wiki/Cross-platform_software" title="Cross-platform software">Cross-platform</a>: <a href="/wiki/.NET" title=".NET">.NET</a> framework, <a href="/wiki/Mono_(software)" title="Mono (software)">Mono</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_license" title="Software license">License</a></th><td class="infobox-data"><a href="/wiki/MIT_License" title="MIT License">MIT</a><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Filename_extension" title="Filename extension">Filename extensions</a></th><td class="infobox-data">.fs, .fsi, .fsx, .fsscript</td></tr><tr><th scope="row" class="infobox-label">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="https://fsharp.org/">fsharp<wbr />.org</a></span> <p><br /> </p> <span class="url"><a rel="nofollow" class="external text" href="https://learn.microsoft.com/en-us/dotnet/fsharp">learn<wbr />.microsoft<wbr />.com<wbr />/en-us<wbr />/dotnet<wbr />/fsharp</a></span></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #eee;">Influenced by</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>, <a href="/wiki/Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a>, <a href="/wiki/Haskell" title="Haskell">Haskell</a>,<sup id="cite_ref-haskellInfluence_4-0" class="reference"><a href="#cite_note-haskellInfluence-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> <a href="/wiki/ML_(programming_language)" title="ML (programming language)">ML</a>, <a href="/wiki/OCaml" title="OCaml">OCaml</a>,<sup id="cite_ref-historyMSR_5-0" class="reference"><a href="#cite_note-historyMSR-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-ocamlOrigins_6-0" class="reference"><a href="#cite_note-ocamlOrigins-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a>, <a href="/wiki/Scala_(programming_language)" title="Scala (programming language)">Scala</a></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #eee;">Influenced</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>,<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Elm_(programming_language)" title="Elm (programming language)">Elm</a>, <a href="/wiki/F*_(programming_language)" title="F* (programming language)">F*</a>, <a href="/wiki/LiveScript_(programming_language)" title="LiveScript (programming language)">LiveScript</a></td></tr><tr><td colspan="2" class="infobox-below hlist" style="border-top: 1px solid #aaa; padding-top: 3px;"> <ul><li><span class="noviewer" typeof="mw:File"><a href="/wiki/File:Wikibooks-logo-en-noslogan.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/16px-Wikibooks-logo-en-noslogan.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/24px-Wikibooks-logo-en-noslogan.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/32px-Wikibooks-logo-en-noslogan.svg.png 2x" data-file-width="400" data-file-height="400" /></a></span> <a href="https://en.wikibooks.org/wiki/F_Sharp_Programming" class="extiw" title="wikibooks:F Sharp Programming">F Sharp Programming</a> at Wikibooks</li></ul> </td></tr></tbody></table> <p><b>F#</b> (pronounced <b>F sharp</b>) is a <a href="/wiki/General-purpose_programming_language" title="General-purpose programming language">general-purpose</a>, <a href="/wiki/High-level_programming_language" title="High-level programming language">high-level</a>, <a href="/wiki/Strong_and_weak_typing" title="Strong and weak typing">strongly typed</a>, <a href="/wiki/Programming_paradigm#Multi-paradigm" title="Programming paradigm">multi-paradigm</a> <a href="/wiki/Programming_language" title="Programming language">programming language</a> that encompasses <a href="/wiki/Functional_programming" title="Functional programming">functional</a>, <a href="/wiki/Imperative_programming" title="Imperative programming">imperative</a>, and <a href="/wiki/Object-oriented_programming" title="Object-oriented programming">object-oriented programming</a> methods. It is most often used as a <a href="/wiki/Cross-platform_software" title="Cross-platform software">cross-platform</a> <a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">Common Language Infrastructure</a> (CLI) language on <a href="/wiki/.NET" title=".NET">.NET</a>, but can also generate <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a><sup id="cite_ref-js_8-0" class="reference"><a href="#cite_note-js-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> and <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">graphics processing unit</a> (GPU) code.<sup id="cite_ref-gpgpu_9-0" class="reference"><a href="#cite_note-gpgpu-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </p><p>F# is developed by the <a href="/wiki/F_Sharp_Software_Foundation" title="F Sharp Software Foundation">F# Software Foundation</a>,<sup id="cite_ref-fsharporg_10-0" class="reference"><a href="#cite_note-fsharporg-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> and open contributors. An <a href="/wiki/Open-source_software" title="Open-source software">open source</a>, cross-platform compiler for F# is available from the F# Software Foundation.<sup id="cite_ref-fsharposg_11-0" class="reference"><a href="#cite_note-fsharposg-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> F# is a fully supported language in <a href="/wiki/Microsoft_Visual_Studio" class="mw-redirect" title="Microsoft Visual Studio">Visual Studio</a><sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> and <a href="/wiki/JetBrains#IDEs" title="JetBrains">JetBrains Rider</a>.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Plug-in_(computing)" title="Plug-in (computing)">Plug-ins</a> supporting F# exist for many widely used editors including <a href="/wiki/Visual_Studio_Code" title="Visual Studio Code">Visual Studio Code</a>, <a href="/wiki/Vim_(text_editor)" title="Vim (text editor)">Vim</a>, and <a href="/wiki/Emacs" title="Emacs">Emacs</a>. </p><p>F# is a member of the <a href="/wiki/ML_(programming_language)" title="ML (programming language)">ML</a> language family and originated as a <a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a> implementation of a core of the programming language <a href="/wiki/OCaml" title="OCaml">OCaml</a>.<sup id="cite_ref-historyMSR_5-1" class="reference"><a href="#cite_note-historyMSR-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-ocamlOrigins_6-1" class="reference"><a href="#cite_note-ocamlOrigins-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> It has also been influenced by <a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>, <a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a>, <a href="/wiki/Haskell" title="Haskell">Haskell</a>,<sup id="cite_ref-haskellInfluence_4-1" class="reference"><a href="#cite_note-haskellInfluence-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Scala_(programming_language)" title="Scala (programming language)">Scala</a> and <a href="/wiki/Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a>. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="History">History</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=1" title="Edit section: History"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Versions">Versions</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=2" title="Edit section: Versions"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable"> <tbody><tr> <th>F#<br />version </th> <th>Language specification </th> <th>Date </th> <th><a href="/wiki/Computing_platform" title="Computing platform">Platforms</a> </th> <th><a href="/wiki/Runtime_system" title="Runtime system">Runtime</a> </th></tr> <tr> <td>1.x </td> <td> </td> <td>May 2005<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a> </td> <td><a href="/wiki/.NET_Framework" title=".NET Framework">.NET</a> 1.0 - 3.5 </td></tr> <tr> <td>2.0 </td> <td><a rel="nofollow" class="external text" href="http://fsharp.org/specs/language-spec/index.html#f-20">August 2010</a> </td> <td>April 2010<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a>, <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a> </td> <td><a href="/wiki/.NET_Framework" title=".NET Framework">.NET</a> 2.0 - 4.0, <a href="/wiki/Mono_(software)" title="Mono (software)">Mono</a> </td></tr> <tr> <td>3.0 </td> <td><a rel="nofollow" class="external text" href="http://fsharp.org/specs/language-spec/index.html#f-30">November 2012</a> </td> <td>August 2012<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a>, <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a>;<br /><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>,<sup id="cite_ref-js_8-1" class="reference"><a href="#cite_note-js-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">GPU</a><sup id="cite_ref-gpgpu_9-1" class="reference"><a href="#cite_note-gpgpu-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/.NET_Framework" title=".NET Framework">.NET</a> 2.0 - 4.5, <a href="/wiki/Mono_(software)" title="Mono (software)">Mono</a> </td></tr> <tr> <td>3.1 </td> <td><a rel="nofollow" class="external text" href="http://fsharp.org/specs/language-spec/index.html#f-31">November 2013</a> </td> <td>October 2013<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a>, <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a>;<br /><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>,<sup id="cite_ref-js_8-2" class="reference"><a href="#cite_note-js-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">GPU</a><sup id="cite_ref-gpgpu_9-2" class="reference"><a href="#cite_note-gpgpu-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/.NET_Framework" title=".NET Framework">.NET</a> 2.0 - 4.5, <a href="/wiki/Mono_(software)" title="Mono (software)">Mono</a> </td></tr> <tr> <td>4.0 </td> <td><a rel="nofollow" class="external text" href="http://fsharp.org/specs/language-spec/index.html#f-40">January 2016</a> </td> <td>July 2015<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> </td> <td> </td> <td> </td></tr> <tr> <td>4.1 </td> <td><a rel="nofollow" class="external text" href="http://fsharp.org/specs/language-spec/index.html#f-41">May 2018</a> </td> <td>March 2017<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a>, <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a>, <p><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>,<sup id="cite_ref-js_8-3" class="reference"><a href="#cite_note-js-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">GPU</a><sup id="cite_ref-gpgpu_9-3" class="reference"><a href="#cite_note-gpgpu-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </p> </td> <td><a href="/wiki/.NET_Framework" title=".NET Framework">.NET</a> 3.5 - 4.6.2, <a href="/wiki/.NET" title=".NET">.NET</a>, <a href="/wiki/Mono_(software)" title="Mono (software)">Mono</a> </td></tr> <tr> <td>4.5 </td> <td> </td> <td>August 2018<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a>, <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a>, <p><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>,<sup id="cite_ref-js_8-4" class="reference"><a href="#cite_note-js-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">GPU</a><sup id="cite_ref-gpgpu_9-4" class="reference"><a href="#cite_note-gpgpu-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </p> </td> <td><a href="/wiki/.NET_Framework" title=".NET Framework">.NET</a> 4.5 - 4.7.2,<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> <a href="/wiki/.NET" title=".NET">.NET</a> Core SDK 2.1.400<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>4.6 </td> <td> </td> <td>March 2019<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a>, <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a>, <p><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>,<sup id="cite_ref-js_8-5" class="reference"><a href="#cite_note-js-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">GPU</a><sup id="cite_ref-gpgpu_9-5" class="reference"><a href="#cite_note-gpgpu-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </p> </td> <td><a href="/wiki/.NET_Framework" title=".NET Framework">.NET</a> 4.5 - 4.7.2,<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> <a href="/wiki/.NET" title=".NET">.NET</a> Core SDK 2.2.300<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>4.7 </td> <td> </td> <td>September 2019<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a>, <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a>, <p><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>,<sup id="cite_ref-js_8-6" class="reference"><a href="#cite_note-js-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">GPU</a><sup id="cite_ref-gpgpu_9-6" class="reference"><a href="#cite_note-gpgpu-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </p> </td> <td><a href="/wiki/.NET_Framework" title=".NET Framework">.NET</a> 4.5 - 4.8,<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> <a href="/wiki/.NET" title=".NET">.NET</a> Core SDK 3.0.100<sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>5.0 </td> <td> </td> <td>November 2020<sup id="cite_ref-blogs.msdn.microsoft.com2_29-0" class="reference"><a href="#cite_note-blogs.msdn.microsoft.com2-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a>, <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a>, <p><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>,<sup id="cite_ref-js_8-7" class="reference"><a href="#cite_note-js-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">GPU</a><sup id="cite_ref-gpgpu_9-7" class="reference"><a href="#cite_note-gpgpu-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </p> </td> <td><a href="/wiki/.NET" title=".NET">.NET</a> SDK 5.0.100<sup id="cite_ref-30" class="reference"><a href="#cite_note-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>6.0 </td> <td> </td> <td>November 2021<sup id="cite_ref-31" class="reference"><a href="#cite_note-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a>, <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a>, <p><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>,<sup id="cite_ref-js_8-8" class="reference"><a href="#cite_note-js-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">GPU</a><sup id="cite_ref-gpgpu_9-8" class="reference"><a href="#cite_note-gpgpu-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </p> </td> <td><a href="/wiki/.NET" title=".NET">.NET</a> SDK 6.0.100<sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>7.0 </td> <td> </td> <td>November 2022<sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a>, <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a>, <p><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>,<sup id="cite_ref-js_8-9" class="reference"><a href="#cite_note-js-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">GPU</a><sup id="cite_ref-gpgpu_9-9" class="reference"><a href="#cite_note-gpgpu-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </p> </td> <td><a href="/wiki/.NET" title=".NET">.NET</a> SDK 7.0.100<sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>8.0 </td> <td> </td> <td>November 2023<sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a>, <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a>, <p><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>,<sup id="cite_ref-js_8-10" class="reference"><a href="#cite_note-js-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">GPU</a><sup id="cite_ref-gpgpu_9-10" class="reference"><a href="#cite_note-gpgpu-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </p> </td> <td><a href="/wiki/.NET" title=".NET">.NET</a> SDK 8.0.100<sup id="cite_ref-36" class="reference"><a href="#cite_note-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>9.0 </td> <td> </td> <td>November 2024<sup id="cite_ref-37" class="reference"><a href="#cite_note-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a>, <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a>, <p><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>,<sup id="cite_ref-js_8-11" class="reference"><a href="#cite_note-js-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">GPU</a><sup id="cite_ref-gpgpu_9-11" class="reference"><a href="#cite_note-gpgpu-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </p> </td> <td><a href="/wiki/.NET" title=".NET">.NET</a> SDK 9.0.0<sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Language_evolution">Language evolution</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=3" title="Edit section: Language evolution"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>F# uses an open development and engineering process. The language evolution process is managed by <a href="/wiki/Don_Syme" title="Don Syme">Don Syme</a> from <a href="/wiki/Microsoft_Research" title="Microsoft Research">Microsoft Research</a> as the <a href="/wiki/Benevolent_dictator_for_life" title="Benevolent dictator for life">benevolent dictator for life</a> (BDFL) for the language design, together with the F# Software Foundation. Earlier versions of the F# language were designed by <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> and <a href="/wiki/Microsoft_Research" title="Microsoft Research">Microsoft Research</a> using a closed development process. </p><p>F# was first included in Visual Studio in the <a href="/wiki/Visual_Studio#2010" title="Visual Studio">2010 edition</a>, at the same level as <a href="/wiki/Visual_Basic_(.NET)" title="Visual Basic (.NET)">Visual Basic (.NET)</a> and C# (albeit as an option), and remains in all later editions, thus making the language widely available and well-supported. </p><p>F# originates from Microsoft Research, Cambridge, UK. The language was originally designed and implemented by <a href="/wiki/Don_Syme" title="Don Syme">Don Syme</a>,<sup id="cite_ref-historyMSR_5-2" class="reference"><a href="#cite_note-historyMSR-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> according to whom in the fsharp team, they say the F is for "Fun".<sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup> Andrew Kennedy contributed to the design of units of measure.<sup id="cite_ref-historyMSR_5-3" class="reference"><a href="#cite_note-historyMSR-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> The Visual F# Tools for Visual Studio are developed by Microsoft.<sup id="cite_ref-historyMSR_5-4" class="reference"><a href="#cite_note-historyMSR-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> 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.<sup id="cite_ref-fsharporg_10-1" class="reference"><a href="#cite_note-fsharporg-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> </p> <table class="wikitable"> <caption>Summary of versions </caption> <tbody><tr> <th>F#<br />version </th> <th>Features added </th></tr> <tr> <th>1.0 </th> <td valign="top"> <ul><li>Functional programming</li> <li>Discriminated unions</li> <li>Records</li> <li>Tuples</li> <li>Pattern matching</li> <li>Type abbreviations</li> <li>Object-oriented programming</li> <li>Structs</li> <li>Signature files</li> <li>Scripting files</li> <li>Imperative programming</li> <li>Modules (no functors)</li> <li>Nested modules</li> <li>.NET interoperability</li></ul> </td></tr> <tr> <th>2.0 </th> <td> <ul><li>Active patterns</li> <li>Units of measure</li> <li>Sequence expressions</li> <li>Asynchronous programming</li> <li>Agent programming</li> <li>Extension members</li> <li>Named arguments</li> <li>Optional arguments</li> <li>Array slicing</li> <li>Quotations</li> <li>Native interoperability</li> <li>Computation expressions</li></ul> </td></tr> <tr> <th>3.0<sup id="cite_ref-40" class="reference"><a href="#cite_note-40"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup> </th> <td> <ul><li>Type providers</li> <li>LINQ query expressions</li> <li>CLIMutable attribute</li> <li>Triple-quoted strings</li> <li>Auto-properties</li> <li>Provided units-of-measure</li></ul> </td></tr> <tr> <th>3.1<sup id="cite_ref-41" class="reference"><a href="#cite_note-41"><span class="cite-bracket">[</span>41<span class="cite-bracket">]</span></a></sup> </th> <td> <ul><li>Named union type fields</li> <li>Extensions to array slicing</li> <li>Type inference enhancements</li></ul> </td></tr> <tr> <th>4.0<sup id="cite_ref-42" class="reference"><a href="#cite_note-42"><span class="cite-bracket">[</span>42<span class="cite-bracket">]</span></a></sup> </th> <td> <ul><li>Printf on unitized values</li> <li>Extension property initializers</li> <li>Non-null provided types</li> <li>Primary constructors as functions</li> <li>Static parameters for provided methods</li> <li>Printf interpolation</li> <li>Extended #if grammar</li> <li>Tailcall attribute</li> <li>Multiple interface instantiations</li> <li>Optional type args</li> <li>Params dictionaries</li></ul> </td></tr> <tr> <th>4.1<sup id="cite_ref-43" class="reference"><a href="#cite_note-43"><span class="cite-bracket">[</span>43<span class="cite-bracket">]</span></a></sup> </th> <td> <ul><li>Struct tuples which inter-operate with C# tuples</li> <li>Struct annotations for Records</li> <li>Struct annotations for Single-case Discriminated Unions</li> <li>Underscores in numeric literals</li> <li>Caller info argument attributes</li> <li>Result type and some basic Result functions</li> <li>Mutually referential types and modules within the same file</li> <li>Implicit "Module" syntax on modules with shared name as type</li> <li>Byref returns, supporting consuming C# ref-returning methods</li> <li>Error message improvements</li> <li>Support for 'fixed'</li></ul> </td></tr> <tr> <th>4.5<sup id="cite_ref-blogs.msdn.microsoft.com2_29-1" class="reference"><a href="#cite_note-blogs.msdn.microsoft.com2-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> </th> <td> <ul><li>Versioning alignment of binary, package, and language</li> <li>Support for 'Span<T>' and related types</li> <li>Ability to produce 'byref' returns</li> <li>The 'voidptr' type</li> <li>The 'inref<'T>' and 'outref<'T>' types to represent readonly and write-only 'byref's</li> <li>'IsByRefLike' structs</li> <li>'IsReadOnly' structs</li> <li>Extension method support for 'byref<'T>'/'inref<'T>'/'outref<'T>'</li> <li>'match!' keyword in computation expressions</li> <li>Relaxed upcast with 'yield' in F# seq/list/array expressions</li> <li>Relaxed indentation with list and array expressions</li> <li>Enumeration cases emitted as public</li></ul> </td></tr> <tr> <th>4.6 </th> <td> <ul><li>Anonymous record types</li></ul> </td></tr> <tr> <th>4.7<sup id="cite_ref-blogs.msdn.microsoft.com.4.7_44-0" class="reference"><a href="#cite_note-blogs.msdn.microsoft.com.4.7-44"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup> </th> <td> <ul><li>Implicit yields</li> <li>No more required double underscore</li> <li>Indentation relaxations for parameters passed to constructors and static methods</li> <li>'nameof' function</li> <li>Open static classes</li></ul> </td></tr> <tr> <th>5.0<sup id="cite_ref-blogs.msdn.microsoft.com.5.0_45-0" class="reference"><a href="#cite_note-blogs.msdn.microsoft.com.5.0-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup> </th> <td> <ul><li>FSharp.Core now targets netstandard2.0 only</li> <li>Package references in F# scripts</li> <li>Support for Jupyter, nteract, and VSCode Notebooks</li> <li>String Interpolation</li> <li>Support for nameof</li> <li>Open Type declarations</li> <li>Enhanced Slicing</li> <li>F# quotations improvements</li> <li>Applicative Computation Expressions</li> <li>Improved stack traces in F# async and other computation expressions</li> <li>Improved .NET interop</li> <li>Improved Map and Set performance in FSharp.Core</li> <li>Improved compiler performance</li> <li>Improved compiler analysis for library authors</li></ul> </td></tr> <tr> <th>6.0<sup id="cite_ref-46" class="reference"><a href="#cite_note-46"><span class="cite-bracket">[</span>46<span class="cite-bracket">]</span></a></sup> </th> <td> <ul><li>Tasks</li> <li>Simpler indexing</li> <li>Augments to "active patterns"</li> <li>Overloaded custom operations in computation expressions</li> <li>“as” patterns</li> <li>Indentation syntax revisions</li> <li>More implicit conversions</li> <li>More implicit upcast conversions</li> <li>Implicit integer conversions</li> <li>First-class support for .NET-style implicit conversions</li> <li>Optional warnings for implicit conversions</li> <li>Formatting for binary numbers</li> <li>Discards on use bindings</li> <li>InlineIfLambda optimizer directive</li> <li>Resumable code</li> <li>More collection functions</li> <li>Map has Keys and Values</li> <li>More intrinsics for NativePtr</li> <li>More numeric types with unit annotations</li> <li>Informational warnings for rarely used symbolic operators</li></ul> </td></tr> <tr> <th>7.0<sup id="cite_ref-47" class="reference"><a href="#cite_note-47"><span class="cite-bracket">[</span>47<span class="cite-bracket">]</span></a></sup> </th> <td> <ul><li>Static abstract members support in interfaces</li> <li>Making working with SRTPs (statically resolved type parameters) easier</li> <li>Required properties checking</li> <li>Init scope and init-only properties</li> <li>Reference assemblies support</li> <li>F# self-contained deployments & Native AOT</li> <li>Added support for N-d arrays up to rank 32.</li> <li>Result module functions parity with Option.</li> <li>Fixes in resumable state machines codegen for the tasks builds.</li> <li>Better codegen for compiler-generated side-effect-free property getters</li> <li>ARM64 platform-specific compiler and ARM64 target support in F# compiler. Dependency manager #r caching support</li> <li>Parallel type-checking and project-checking support (experimental, can be enabled via VS setting, or by tooling authors)</li> <li>Miscellaneous bugfixes and improvements.</li></ul> </td></tr> <tr> <th>8.0<sup id="cite_ref-48" class="reference"><a href="#cite_note-48"><span class="cite-bracket">[</span>48<span class="cite-bracket">]</span></a></sup> </th> <td> <ul><li>_.Property shorthand for (fun x -> x.Property)</li> <li>Nested record field copy and update</li> <li>while! (while bang) feature <sup id="cite_ref-49" class="reference"><a href="#cite_note-49"><span class="cite-bracket">[</span>49<span class="cite-bracket">]</span></a></sup></li> <li>Extended string interpolation syntax</li> <li>Use and compose string literals for printf and related functions</li> <li>Arithmetic operators in literals</li> <li>Type constraint intersection syntax</li> <li>Extended fixed binding</li> <li>Easier [<Extension>] method definition</li> <li>Static members in interfaces</li> <li>Static let in discriminated unions, records, structs, and types without primary constructors</li> <li>try-with within seq{}, [], and [||] collection expressions</li> <li>Recursive calls and yield! within exception handler</li> <li>Tail call attribute</li> <li>[<Struct>] unions can now have > 49 cases</li> <li>Strict indentation rules</li> <li>New diagnostics from the compiler</li> <li>Switches for compiler parallelization</li></ul> </td></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="Language_overview">Language overview</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=4" title="Edit section: Language overview"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Functional_programming">Functional programming</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=5" title="Edit section: Functional programming"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>F# is a <a href="/wiki/Strong_and_weak_typing" title="Strong and weak typing">strongly typed</a> functional-first language with a large number of capabilities that are normally found only in <a href="/wiki/Functional_programming" title="Functional programming">functional programming</a> languages, while supporting object-oriented features available in C#. Together, these features allow F# programs to be written in a completely functional style and also allow functional and object-oriented styles to be mixed. </p><p>Examples of functional features are: </p> <ul><li>Everything is an expression</li> <li><a href="/wiki/Type_inference" title="Type inference">Type inference</a> (using <a href="/wiki/Hindley%E2%80%93Milner_type_system" title="Hindley–Milner type system">Hindley–Milner type inference</a>)</li> <li><a href="/wiki/First-class_function" title="First-class function">Functions as first-class citizens</a></li> <li><a href="/wiki/Anonymous_function" title="Anonymous function">Anonymous functions</a> with capturing semantics (i.e., <a href="/wiki/Closure_(computer_science)" class="mw-redirect" title="Closure (computer science)">closures</a>)</li> <li>Immutable variables and objects</li> <li><a href="/wiki/Lazy_evaluation" title="Lazy evaluation">Lazy evaluation</a> support</li> <li><a href="/wiki/Higher-order_function" title="Higher-order function">Higher-order functions</a></li> <li>Nested functions</li> <li><a href="/wiki/Currying" title="Currying">Currying</a></li> <li><a href="/wiki/Pattern_matching" title="Pattern matching">Pattern matching</a></li> <li><a href="/wiki/Algebraic_data_types" class="mw-redirect" title="Algebraic data types">Algebraic data types</a></li> <li><a href="/wiki/Tuple_(computer_science)" class="mw-redirect" title="Tuple (computer science)">Tuples</a></li> <li><a href="/wiki/List_comprehension" title="List comprehension">List comprehension</a></li> <li><a href="/wiki/Monad_(functional_programming)" title="Monad (functional programming)">Monad</a> pattern support (called <i>computation expressions</i><sup id="cite_ref-50" class="reference"><a href="#cite_note-50"><span class="cite-bracket">[</span>50<span class="cite-bracket">]</span></a></sup>)</li> <li><a href="/wiki/Tail_call" title="Tail call">Tail call optimisation</a><sup id="cite_ref-51" class="reference"><a href="#cite_note-51"><span class="cite-bracket">[</span>51<span class="cite-bracket">]</span></a></sup></li></ul> <p>F# is an expression-based language using <a href="/wiki/Eager_evaluation" class="mw-redirect" title="Eager evaluation">eager evaluation</a> and also in some instances <a href="/wiki/Lazy_evaluation" title="Lazy evaluation">lazy evaluation</a>. Every statement in F#, including <code>if</code> expressions, <code>try</code> expressions and loops, is a composable expression with a static type.<sup id="cite_ref-overview_52-0" class="reference"><a href="#cite_note-overview-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup> Functions and expressions that do not return any value have a return type of <code>unit</code>. F# uses the <code>let</code> keyword for binding values to a name.<sup id="cite_ref-overview_52-1" class="reference"><a href="#cite_note-overview-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup> For example: </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="k">let</span><span class="w"> </span><span class="nv">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">4</span> </pre></div> <p>binds the value <code>7</code> to the name <code>x</code>. </p><p>New types are defined using the <code>type</code> keyword. For functional programming, F# provides <i>tuple</i>, <i>record</i>, <i>discriminated union</i>, <i>list</i>, <i>option</i>, and <i>result</i> types.<sup id="cite_ref-overview_52-2" class="reference"><a href="#cite_note-overview-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup> A <i><a href="/wiki/N-tuple" class="mw-redirect" title="N-tuple">tuple</a></i> represents a set of <i>n</i> values, where <i>n</i> ≥ 0. The value <i>n</i> is called the <a href="/wiki/Arity" title="Arity">arity</a> of the tuple. A 3-tuple would be represented as <code>(A, B, C)</code>, where A, B, and C are values of possibly different types. A tuple can be used to store values only when the number of values is known at design-time and stays constant during execution. </p><p>A <i>record</i> is a type where the data members are named. Here is an example of record definition: </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nc">R</span><span class="w"> </span><span class="o">=</span><span class="w"> </span> <span class="w"> </span><span class="o">{</span><span class="w"> </span><span class="n">Name</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="w"> </span> <span class="w"> </span><span class="n">Age</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">int</span><span class="w"> </span><span class="o">}</span> </pre></div> <p>Records can be created as <code class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" style="" dir="ltr"><span class="k">let</span><span class="w"> </span><span class="nv">r</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">{</span><span class="w"> </span><span class="n">Name</span><span class="o">=</span><span class="s">"AB"</span><span class="o">;</span><span class="w"> </span><span class="n">Age</span><span class="o">=</span><span class="mi">42</span></code>}. The <code>with</code> keyword is used to create a copy of a record, as in <code class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" style="" dir="ltr"><span class="o">{</span><span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="n">Name</span><span class="o">=</span><span class="s">"CD"</span></code>}, 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>). </p><p>A <a href="/wiki/Tagged_union" title="Tagged union">discriminated union</a> type is a <a href="/wiki/Type-safe" class="mw-redirect" title="Type-safe">type-safe</a> version of <a href="/wiki/Union_(computer_science)" class="mw-redirect" title="Union (computer science)">C unions</a>. For example, </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nc">A</span><span class="w"> </span><span class="o">=</span><span class="w"> </span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">UnionCaseX</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="kt">string</span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">UnionCaseY</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="n">int</span> </pre></div> <p>Values of the union type can correspond to either union case. The types of the values carried by each union case is included in the definition of each case. </p><p>The <i>list</i> type is an immutable <a href="/wiki/Linked_list" title="Linked list">linked list</a> represented either using a <code class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" style="" dir="ltr"><span class="n">head</span><span class="o">::</span><span class="n">tail</span></code> notation (<code>::</code> is the <a href="/wiki/Cons" title="Cons">cons</a> operator) or a shorthand as <code class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" style="" dir="ltr"><span class="o">[</span><span class="n">item1</span><span class="o">;</span><span class="w"> </span><span class="n">item2</span><span class="o">;</span><span class="w"> </span><span class="n">item3</span><span class="o">]</span></code>. An empty list is written <code>[]</code>. The <i>option</i> type is a discriminated union type with choices <code>Some(x)</code> or <code>None</code>. F# types may be <a href="/wiki/Generic_programming" title="Generic programming">generic</a>, implemented as generic .NET types. </p><p>F# supports <a href="/wiki/Lambda_calculus" title="Lambda calculus">lambda functions</a> and <a href="/wiki/Closure_(computing)" class="mw-redirect" title="Closure (computing)">closures</a>.<sup id="cite_ref-overview_52-3" class="reference"><a href="#cite_note-overview-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup> All functions in F# are first class values and are immutable.<sup id="cite_ref-overview_52-4" class="reference"><a href="#cite_note-overview-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup> Functions can be <a href="/wiki/Curry_function" class="mw-redirect" title="Curry function">curried</a>. Being first-class values, functions can be passed as arguments to other functions. Like other functional programming languages, F# allows <a href="/wiki/Function_composition_(computer_science)" title="Function composition (computer science)">function composition</a> using the <code>>></code> and <code><<</code> operators. </p><p>F# provides <i><style data-mw-deduplicate="TemplateStyles:r1238216509">.mw-parser-output .vanchor>:target~.vanchor-text{background-color:#b1d2ff}@media screen{html.skin-theme-clientpref-night .mw-parser-output .vanchor>:target~.vanchor-text{background-color:#0f4dc9}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .vanchor>:target~.vanchor-text{background-color:#0f4dc9}}</style><span class="vanchor"><span id="sequence_expressions"></span><span class="vanchor-text">sequence expressions</span></span></i><sup id="cite_ref-seq_53-0" class="reference"><a href="#cite_note-seq-53"><span class="cite-bracket">[</span>53<span class="cite-bracket">]</span></a></sup> that define a sequence <code>seq { ... }</code>, list <code>[ ... ]</code> or array <code>[| ... |]</code> through code that generates values. For example, </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="n">seq</span><span class="w"> </span><span class="o">{</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">..</span><span class="w"> </span><span class="mi">25</span><span class="w"> </span><span class="k">do</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">15</span><span class="w"> </span><span class="k">then</span> <span class="w"> </span><span class="k">yield</span><span class="w"> </span><span class="n">b</span><span class="o">*</span><span class="n">b</span><span class="w"> </span><span class="o">}</span> </pre></div> <p>forms a sequence of squares of numbers from 0 to 14 by filtering out numbers from the range of numbers from 0 to 25. Sequences are <a href="/wiki/Generator_(computer_programming)" title="Generator (computer programming)">generators</a> – values are generated on-demand (i.e., are <a href="/wiki/Lazy_evaluation" title="Lazy evaluation">lazily evaluated</a>) – while lists and arrays are evaluated eagerly. </p><p>F# uses <a href="/wiki/Pattern_matching" title="Pattern matching">pattern matching</a> to bind values to names. Pattern matching is also used when accessing discriminated unions – the union is value matched against pattern rules and a rule is selected when a match succeeds. F# also supports <i>active patterns</i> as a form of extensible pattern matching.<sup id="cite_ref-activePatterns_54-0" class="reference"><a href="#cite_note-activePatterns-54"><span class="cite-bracket">[</span>54<span class="cite-bracket">]</span></a></sup> It is used, for example, when multiple ways of matching on a type exist.<sup id="cite_ref-overview_52-5" class="reference"><a href="#cite_note-overview-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup> </p><p>F# supports a general syntax for defining compositional computations called <i><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238216509"><span class="vanchor"><span id="computation_expressions"></span><span class="vanchor-text">computation expressions</span></span></i>. Sequence expressions, asynchronous computations and queries are particular kinds of computation expressions. Computation expressions are an implementation of the <a href="/wiki/Monad_(functional_programming)" title="Monad (functional programming)">monad</a> pattern.<sup id="cite_ref-seq_53-1" class="reference"><a href="#cite_note-seq-53"><span class="cite-bracket">[</span>53<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Imperative_programming">Imperative programming</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=6" title="Edit section: Imperative programming"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>F# support for imperative programming includes </p> <ul><li><code>for</code> <a href="/wiki/Control_flow#Loops" title="Control flow">loops</a></li> <li><code>while</code> <a href="/wiki/Control_flow#Loops" title="Control flow">loops</a></li> <li><a href="/wiki/Array_data_structure" class="mw-redirect" title="Array data structure">arrays</a>, created with the <code>[| ... |]</code> syntax</li> <li><a href="/wiki/Associative_array" title="Associative array">hash table</a>, created with the <code>dict [ ... ]</code> syntax or <code>System.Collections.Generic.Dictionary<_,_></code> type.</li></ul> <p>Values and record fields can also be labelled as <code>mutable</code>. For example: </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// Define 'x' with initial value '1'</span> <span class="k">let</span><span class="w"> </span><span class="nv">mutable</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span> <span class="c1">// Change the value of 'x' to '3'</span> <span class="n">x</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="mi">3</span> </pre></div> <p>Also, F# supports access to all CLI types and objects such as those defined in the <code>System.Collections.Generic</code> namespace defining imperative data structures. </p> <div class="mw-heading mw-heading3"><h3 id="Object-oriented_programming">Object-oriented programming</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=7" title="Edit section: Object-oriented programming"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Like other <a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">Common Language Infrastructure</a> (CLI) languages, F# can use CLI types through object-oriented programming.<sup id="cite_ref-overview_52-6" class="reference"><a href="#cite_note-overview-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup> F# support for object-oriented programming in expressions includes: </p> <ul><li>Dot-notation, e.g., <code class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" style="" dir="ltr"><span class="n">x</span><span class="o">.</span><span class="n">Name</span></code></li> <li>Object expressions, e.g., <code class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" style="" dir="ltr"><span class="o">{</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">obj</span><span class="bp">()</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="k">member</span><span class="w"> </span><span class="n">x</span><span class="p">.</span><span class="nf">ToString</span><span class="bp">()</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"hello"</span></code>}</li> <li>Object construction, e.g., <code class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" style="" dir="ltr"><span class="k">new</span><span class="w"> </span><span class="n">Form</span><span class="bp">()</span></code></li> <li>Type tests, e.g., <code class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" style="" dir="ltr"><span class="n">x</span><span class="w"> </span><span class="o">:?</span><span class="w"> </span><span class="kt">string</span></code></li> <li>Type coercions, e.g., <code class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" style="" dir="ltr"><span class="n">x</span><span class="w"> </span><span class="o">:?></span><span class="w"> </span><span class="kt">string</span></code></li> <li>Named arguments, e.g., <code class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" style="" dir="ltr"><span class="n">x</span><span class="o">.</span><span class="n">Method</span><span class="o">(</span><span class="n">someArgument</span><span class="o">=</span><span class="mi">1</span><span class="o">)</span></code></li> <li>Named setters, e.g., <code class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" style="" dir="ltr"><span class="k">new</span><span class="w"> </span><span class="n">Form</span><span class="o">(</span><span class="n">Text</span><span class="o">=</span><span class="s">"Hello"</span><span class="o">)</span></code></li> <li>Optional arguments, e.g., <code class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" style="" dir="ltr"><span class="n">x</span><span class="o">.</span><span class="n">Method</span><span class="o">(</span><span class="n">OptionalArgument</span><span class="o">=</span><span class="mi">1</span><span class="o">)</span></code></li></ul> <p>Support for object-oriented programming in patterns includes </p> <ul><li>Type tests, e.g., <code class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" style="" dir="ltr"><span class="o">:?</span><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">s</span></code></li> <li>Active patterns, which can be defined over object types<sup id="cite_ref-activePatterns_54-1" class="reference"><a href="#cite_note-activePatterns-54"><span class="cite-bracket">[</span>54<span class="cite-bracket">]</span></a></sup></li></ul> <p>F# object type definitions can be class, struct, interface, enum, or delegate type definitions, corresponding to the definition forms found in <a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>. For example, here is a class with a constructor taking a name and age, and declaring two properties. </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="sd">/// A simple object type definition</span> <span class="k">type</span><span class="w"> </span><span class="nc">Person</span><span class="o">(</span><span class="n">name</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="o">,</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">int</span><span class="o">)</span><span class="w"> </span><span class="o">=</span> <span class="w"> </span><span class="k">member</span><span class="w"> </span><span class="n">x</span><span class="p">.</span><span class="nf">Name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">name</span> <span class="w"> </span><span class="k">member</span><span class="w"> </span><span class="n">x</span><span class="p">.</span><span class="nf">Age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">age</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Asynchronous_programming">Asynchronous programming</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=8" title="Edit section: Asynchronous programming"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>F# supports <a href="/wiki/Asynchronous_programming" class="mw-redirect" title="Asynchronous programming">asynchronous programming</a> through <i>asynchronous workflows</i>.<sup id="cite_ref-aw_55-0" class="reference"><a href="#cite_note-aw-55"><span class="cite-bracket">[</span>55<span class="cite-bracket">]</span></a></sup> An asynchronous workflow is defined as a sequence of commands inside an <code>async{ ... }</code>, as in </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="k">let</span><span class="w"> </span><span class="nv">asynctask</span><span class="w"> </span><span class="o">=</span><span class="w"> </span> <span class="w"> </span><span class="n">async</span><span class="w"> </span><span class="o">{</span><span class="w"> </span><span class="k">let</span><span class="w"> </span><span class="nv">req</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nn">WebRequest</span><span class="p">.</span><span class="n">Create</span><span class="o">(</span><span class="n">url</span><span class="o">)</span> <span class="w"> </span><span class="k">let!</span><span class="w"> </span><span class="nv">response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">req</span><span class="o">.</span><span class="n">GetResponseAsync</span><span class="bp">()</span> <span class="w"> </span><span class="k">use</span><span class="w"> </span><span class="n">stream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">response</span><span class="o">.</span><span class="n">GetResponseStream</span><span class="bp">()</span> <span class="w"> </span><span class="k">use</span><span class="w"> </span><span class="n">streamreader</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="nn">System</span><span class="p">.</span><span class="nn">IO</span><span class="p">.</span><span class="n">StreamReader</span><span class="o">(</span><span class="n">stream</span><span class="o">)</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">streamreader</span><span class="o">.</span><span class="n">ReadToEnd</span><span class="bp">()</span><span class="w"> </span><span class="o">}</span> </pre></div> <p>The <code>let!</code> indicates that the expression on the right (getting the response) should be done asynchronously but the flow should only continue when the result is available. In other words, from the point of view of the code block, it's as if getting the response is a blocking call, whereas from the point of view of the system, the thread won't be blocked and may be used to process other flows until the result needed for this one becomes available. </p><p>The async block may be invoked using the <code>Async.RunSynchronously</code> function. Multiple async blocks can be executed in parallel using the <code>Async.Parallel</code> function that takes a list of <code>async</code> objects (in the example, <code>asynctask</code> is an async object) and creates another async object to run the tasks in the lists in parallel. The resultant object is invoked using <code>Async.RunSynchronously</code>.<sup id="cite_ref-aw_55-1" class="reference"><a href="#cite_note-aw-55"><span class="cite-bracket">[</span>55<span class="cite-bracket">]</span></a></sup> </p><p><a href="/wiki/Inversion_of_control" title="Inversion of control">Inversion of control</a> in F# follows this pattern.<sup id="cite_ref-aw_55-2" class="reference"><a href="#cite_note-aw-55"><span class="cite-bracket">[</span>55<span class="cite-bracket">]</span></a></sup> </p><p>Since version 6.0, F# supports creating, consuming and returning .NET tasks directly. <sup id="cite_ref-56" class="reference"><a href="#cite_note-56"><span class="cite-bracket">[</span>56<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">open</span><span class="w"> </span><span class="nn">System.Net.Http</span> <span class="w"> </span><span class="k">let</span><span class="w"> </span><span class="nv">fetchUrlAsync</span><span class="w"> </span><span class="o">(</span><span class="n">url</span><span class="o">:</span><span class="kt">string</span><span class="o">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="c1">// string -> Task<string></span> <span class="w"> </span><span class="n">task</span><span class="w"> </span><span class="o">{</span> <span class="w"> </span><span class="k">use</span><span class="w"> </span><span class="n">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">HttpClient</span><span class="bp">()</span> <span class="w"> </span><span class="k">let!</span><span class="w"> </span><span class="nv">response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">client</span><span class="o">.</span><span class="n">GetAsync</span><span class="o">(</span><span class="n">url</span><span class="o">)</span><span class="w"> </span> <span class="w"> </span><span class="k">let!</span><span class="w"> </span><span class="nv">content</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">response</span><span class="o">.</span><span class="n">Content</span><span class="o">.</span><span class="n">ReadAsStringAsync</span><span class="bp">()</span> <span class="w"> </span><span class="k">do</span><span class="o">!</span><span class="w"> </span><span class="nn">Task</span><span class="p">.</span><span class="n">Delay</span><span class="w"> </span><span class="mi">500</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">content</span> <span class="w"> </span><span class="o">}</span> <span class="w"> </span><span class="c1">// Usage</span> <span class="w"> </span><span class="k">let</span><span class="w"> </span><span class="nv">fetchPrint</span><span class="bp">()</span><span class="w"> </span><span class="o">=</span> <span class="w"> </span><span class="k">let</span><span class="w"> </span><span class="nv">task</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">task</span><span class="w"> </span><span class="o">{</span> <span class="w"> </span><span class="k">let!</span><span class="w"> </span><span class="nv">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">fetchUrlAsync</span><span class="w"> </span><span class="s">"https://example.com"</span> <span class="w"> </span><span class="n">printfn</span><span class="w"> </span><span class="o">$</span><span class="s">"{data}"</span> <span class="w"> </span><span class="o">}</span><span class="w"> </span> <span class="w"> </span><span class="n">task</span><span class="o">.</span><span class="n">Wait</span><span class="bp">()</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Parallel_programming">Parallel programming</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=9" title="Edit section: Parallel programming"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Parallel programming is supported partly through the <code>Async.Parallel</code>, <code>Async.Start</code> and other operations that run asynchronous blocks in parallel. </p><p>Parallel programming is also supported through the <code>Array.Parallel</code> functional programming operators in the F# standard library, direct use of the <code>System.Threading.Tasks</code> task programming model, the direct use of .NET thread pool and .NET threads and through dynamic translation of F# code to alternative parallel execution engines such as <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">GPU</a><sup id="cite_ref-gpgpu_9-12" class="reference"><a href="#cite_note-gpgpu-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> code. </p> <div class="mw-heading mw-heading3"><h3 id="Units_of_measure">Units of measure</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=10" title="Edit section: Units of measure"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The F# type system supports <a href="/wiki/Units_of_measurement" class="mw-redirect" title="Units of measurement">units of measure</a> checking for numbers.<sup id="cite_ref-units-msdn_57-0" class="reference"><a href="#cite_note-units-msdn-57"><span class="cite-bracket">[</span>57<span class="cite-bracket">]</span></a></sup> </p><p>In F#, you can assign units of measure, such as meters or kilograms, to floating point, unsigned integer<sup id="cite_ref-units_extended_58-0" class="reference"><a href="#cite_note-units_extended-58"><span class="cite-bracket">[</span>58<span class="cite-bracket">]</span></a></sup> 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. </p><p>The units of measure feature integrates with F# type inference to require minimal type annotations in user code.<sup id="cite_ref-units_59-0" class="reference"><a href="#cite_note-units-59"><span class="cite-bracket">[</span>59<span class="cite-bracket">]</span></a></sup> </p><p><br /> </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="o">[<</span><span class="n">Measure</span><span class="o">>]</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nc">m</span><span class="w"> </span><span class="c1">// meter</span> <span class="o">[<</span><span class="n">Measure</span><span class="o">>]</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nc">s</span><span class="w"> </span><span class="c1">// second</span> <span class="k">let</span><span class="w"> </span><span class="nv">distance</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">100</span><span class="o">.</span><span class="mi">0</span><span class="o"><</span><span class="n">m</span><span class="o">></span><span class="w"> </span><span class="c1">// float<m></span> <span class="k">let</span><span class="w"> </span><span class="nv">time</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="o">.</span><span class="mi">0</span><span class="o"><</span><span class="n">s</span><span class="o">></span><span class="w"> </span><span class="c1">// float<s></span> <span class="k">let</span><span class="w"> </span><span class="nv">speed</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">distance</span><span class="o">/</span><span class="n">time</span><span class="w"> </span><span class="c1">// float<m/s></span> <span class="o">[<</span><span class="n">Measure</span><span class="o">>]</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nc">kg</span><span class="w"> </span><span class="c1">// kilogram</span> <span class="o">[<</span><span class="n">Measure</span><span class="o">>]</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nc">N</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">(</span><span class="n">kg</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">m</span><span class="o">)/(</span><span class="n">s</span><span class="o">^</span><span class="mi">2</span><span class="o">)</span><span class="w"> </span><span class="c1">// Newtons</span> <span class="o">[<</span><span class="n">Measure</span><span class="o">>]</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nc">Pa</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">N</span><span class="o">/(</span><span class="n">m</span><span class="o">^</span><span class="mi">2</span><span class="o">)</span><span class="w"> </span><span class="c1">// Pascals </span> <span class="o">[<</span><span class="n">Measure</span><span class="o">>]</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nc">days</span><span class="w"> </span> <span class="k">let</span><span class="w"> </span><span class="nv">better_age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3u</span><span class="o"><</span><span class="n">days</span><span class="o">></span><span class="w"> </span><span class="c1">// uint<days></span> </pre></div> <p>The F# static type checker provides this functionality at compile time, but units are erased from the compiled code. Consequently, it is not possible to determine a value's unit at runtime. </p> <div class="mw-heading mw-heading3"><h3 id="Metaprogramming">Metaprogramming</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=11" title="Edit section: Metaprogramming"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>F# allows some forms of syntax customizing via <a href="/wiki/Metaprogramming" title="Metaprogramming">metaprogramming</a> to support embedding custom <a href="/wiki/Domain-specific_language" title="Domain-specific language">domain-specific languages</a> within the F# language, particularly through computation expressions.<sup id="cite_ref-overview_52-7" class="reference"><a href="#cite_note-overview-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup> </p><p>F# includes a feature for run-time meta-programming called quotations.<sup id="cite_ref-quotations_60-0" class="reference"><a href="#cite_note-quotations-60"><span class="cite-bracket">[</span>60<span class="cite-bracket">]</span></a></sup> A quotation expression evaluates to an abstract syntax tree representation of the F# expressions. Similarly, definitions labelled with the <code>[<ReflectedDefinition>]</code> attribute can also be accessed in their quotation form. F# quotations are used for various purposes including to compile F# code into <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a><sup id="cite_ref-js_8-12" class="reference"><a href="#cite_note-js-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> and <a href="/wiki/Graphics_processing_unit" title="Graphics processing unit">GPU</a><sup id="cite_ref-gpgpu_9-13" class="reference"><a href="#cite_note-gpgpu-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> code. Quotations represent their F# code expressions as data for use by other parts of the program while requiring it to be syntactically correct F# code. </p> <div class="mw-heading mw-heading3"><h3 id="Information-rich_programming">Information-rich programming</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=12" title="Edit section: Information-rich programming"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>F# 3.0 introduced a form of compile-time meta-programming through statically extensible type generation called F# type providers.<sup id="cite_ref-typeproviders_61-0" class="reference"><a href="#cite_note-typeproviders-61"><span class="cite-bracket">[</span>61<span class="cite-bracket">]</span></a></sup> F# type providers allow the F# compiler and tools to be extended with components that provide type information to the compiler on-demand at compile time. F# type providers have been used to give strongly typed access to connected information sources in a scalable way, including to the <a href="/wiki/Freebase_(database)" title="Freebase (database)">Freebase</a> knowledge graph.<sup id="cite_ref-62" class="reference"><a href="#cite_note-62"><span class="cite-bracket">[</span>62<span class="cite-bracket">]</span></a></sup> </p><p>In F# 3.0 the F# quotation and computation expression features are combined to implement <a href="/wiki/LINQ" class="mw-redirect" title="LINQ">LINQ</a> queries.<sup id="cite_ref-queries_63-0" class="reference"><a href="#cite_note-queries-63"><span class="cite-bracket">[</span>63<span class="cite-bracket">]</span></a></sup> For example: </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// Use the OData type provider to create types that can be used to access the Northwind database.</span> <span class="k">open</span><span class="w"> </span><span class="nn">Microsoft.FSharp.Data.TypeProviders</span> <span class="k">type</span><span class="w"> </span><span class="nc">Northwind</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ODataService</span><span class="o"><</span><span class="s">"http://services.odata.org/Northwind/Northwind.svc"</span><span class="o">></span> <span class="k">let</span><span class="w"> </span><span class="nv">db</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nn">Northwind</span><span class="p">.</span><span class="n">GetDataContext</span><span class="bp">()</span> <span class="c1">// A query expression.</span> <span class="k">let</span><span class="w"> </span><span class="nv">query1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">query</span><span class="w"> </span><span class="o">{</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">customer</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">db</span><span class="o">.</span><span class="n">Customers</span><span class="w"> </span><span class="k">do</span> <span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="n">customer</span><span class="w"> </span><span class="o">}</span> </pre></div> <p>The combination of type providers, queries and strongly typed functional programming is known as <i>information rich programming</i>.<sup id="cite_ref-irp_64-0" class="reference"><a href="#cite_note-irp-64"><span class="cite-bracket">[</span>64<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Agent_programming">Agent programming</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=13" title="Edit section: Agent programming"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>F# supports a variation of the <a href="/wiki/Actor_model" title="Actor model">actor</a> programming model through the in-memory implementation of lightweight asynchronous agents. For example, the following code defines an agent and posts 2 messages: </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nc">Message</span><span class="w"> </span><span class="o">=</span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Enqueue</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="kt">string</span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Dequeue</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="n">AsyncReplyChannel</span><span class="o"><</span><span class="n">Option</span><span class="o"><</span><span class="kt">string</span><span class="o">>></span> <span class="w"> </span><span class="c1">// Provides concurrent access to a list of strings</span> <span class="w"> </span><span class="k">let</span><span class="w"> </span><span class="nv">listManager</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nn">MailboxProcessor</span><span class="p">.</span><span class="n">Start</span><span class="o">(</span><span class="k">fun</span><span class="w"> </span><span class="n">inbox</span><span class="w"> </span><span class="o">-></span> <span class="w"> </span><span class="k">let</span><span class="w"> </span><span class="nv">rec</span><span class="w"> </span><span class="n">messageLoop</span><span class="w"> </span><span class="kt">list</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">async</span><span class="w"> </span><span class="o">{</span> <span class="w"> </span><span class="k">let!</span><span class="w"> </span><span class="nv">msg</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">inbox</span><span class="o">.</span><span class="n">Receive</span><span class="bp">()</span> <span class="w"> </span><span class="k">match</span><span class="w"> </span><span class="n">msg</span><span class="w"> </span><span class="k">with</span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Enqueue</span><span class="w"> </span><span class="n">item</span><span class="w"> </span><span class="o">-></span> <span class="w"> </span><span class="k">return</span><span class="o">!</span><span class="w"> </span><span class="n">messageLoop</span><span class="w"> </span><span class="o">(</span><span class="n">item</span><span class="w"> </span><span class="o">::</span><span class="w"> </span><span class="kt">list</span><span class="o">)</span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Dequeue</span><span class="w"> </span><span class="n">replyChannel</span><span class="w"> </span><span class="o">-></span> <span class="w"> </span><span class="k">match</span><span class="w"> </span><span class="kt">list</span><span class="w"> </span><span class="k">with</span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="bp">[]</span><span class="w"> </span><span class="o">-></span><span class="w"> </span> <span class="w"> </span><span class="n">replyChannel</span><span class="o">.</span><span class="n">Reply</span><span class="w"> </span><span class="n">None</span> <span class="w"> </span><span class="k">return</span><span class="o">!</span><span class="w"> </span><span class="n">messageLoop</span><span class="w"> </span><span class="kt">list</span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">head</span><span class="w"> </span><span class="o">::</span><span class="w"> </span><span class="n">tail</span><span class="w"> </span><span class="o">-></span> <span class="w"> </span><span class="n">replyChannel</span><span class="o">.</span><span class="n">Reply</span><span class="w"> </span><span class="o">(</span><span class="n">Some</span><span class="w"> </span><span class="n">head</span><span class="o">)</span> <span class="w"> </span><span class="k">return</span><span class="o">!</span><span class="w"> </span><span class="n">messageLoop</span><span class="w"> </span><span class="n">tail</span> <span class="w"> </span><span class="o">}</span> <span class="w"> </span><span class="c1">// Start the loop with an empty list</span> <span class="w"> </span><span class="n">messageLoop</span><span class="w"> </span><span class="bp">[]</span> <span class="w"> </span><span class="o">)</span> <span class="w"> </span><span class="c1">// Usage </span> <span class="w"> </span><span class="n">async</span><span class="w"> </span><span class="o">{</span> <span class="w"> </span><span class="c1">// Enqueue some strings</span> <span class="w"> </span><span class="n">listManager</span><span class="o">.</span><span class="n">Post</span><span class="o">(</span><span class="n">Enqueue</span><span class="w"> </span><span class="s">"Hello"</span><span class="o">)</span> <span class="w"> </span><span class="n">listManager</span><span class="o">.</span><span class="n">Post</span><span class="o">(</span><span class="n">Enqueue</span><span class="w"> </span><span class="s">"World"</span><span class="o">)</span> <span class="w"> </span><span class="c1">// Dequeue and process the strings</span> <span class="w"> </span><span class="k">let!</span><span class="w"> </span><span class="nv">str</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">listManager</span><span class="o">.</span><span class="n">PostAndAsyncReply</span><span class="o">(</span><span class="n">Dequeue</span><span class="o">)</span> <span class="w"> </span><span class="n">str</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nn">Option</span><span class="p">.</span><span class="n">iter</span><span class="w"> </span><span class="o">(</span><span class="n">printfn</span><span class="w"> </span><span class="s">"Dequeued: %s"</span><span class="o">)</span> <span class="w"> </span><span class="o">}</span> <span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nn">Async</span><span class="p">.</span><span class="n">Start</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="Development_tools">Development tools</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=14" title="Edit section: Development tools"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Microsoft_Visual_Studio" class="mw-redirect" title="Microsoft Visual Studio">Visual Studio</a>, with the Visual F# tools from <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> installed, can be used to create, run and debug F# projects. The Visual F# tools include a Visual Studio-hosted <a href="/wiki/Read%E2%80%93eval%E2%80%93print_loop" title="Read–eval–print loop">read–eval–print loop</a> (REPL) interactive console that can execute F# code as it is written. Visual Studio for Mac also fully supports F# projects.</li> <li><a href="/wiki/Visual_Studio_Code" title="Visual Studio Code">Visual Studio Code</a> contains full support for F# via the <a rel="nofollow" class="external text" href="http://ionide.io/">Ionide extension</a>.</li> <li>F# can be developed with any text editor. Specific support exists in editors such as <a href="/wiki/Emacs" title="Emacs">Emacs</a>.</li> <li><a href="/wiki/JetBrains" title="JetBrains">JetBrains</a> Rider is optimized for the development of F# Code starting with release 2019.1.<sup id="cite_ref-65" class="reference"><a href="#cite_note-65"><span class="cite-bracket">[</span>65<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/LINQPad" title="LINQPad">LINQPad</a> has supported F# since version 2.x.<sup class="noprint Inline-Template" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Avoid_weasel_words" class="mw-redirect" title="Wikipedia:Avoid weasel words"><span title="The material near this tag possibly uses too vague attribution or weasel words. (May 2022)">whose?</span></a></i>]</sup></li></ul> <div class="mw-heading mw-heading3"><h3 id="Comparison_of_integrated_development_environments">Comparison of integrated development environments</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=15" title="Edit section: Comparison of integrated development environments"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="excerpt-block"><style data-mw-deduplicate="TemplateStyles:r1066933788">.mw-parser-output .excerpt-hat .mw-editsection-like{font-style:normal}</style><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable dablink excerpt-hat selfref">This section is an excerpt from <a href="/wiki/Comparison_of_integrated_development_environments#F#" title="Comparison of integrated development environments">Comparison of integrated development environments § F#</a>.<span class="mw-editsection-like plainlinks"><span class="mw-editsection-bracket">[</span><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Comparison_of_integrated_development_environments&action=edit">edit</a><span class="mw-editsection-bracket">]</span></span></div><div class="excerpt"> <table class="wikitable"> <caption> </caption> <tbody><tr> <th><a href="/wiki/Integrated_development_environment" title="Integrated development environment">IDE</a> </th> <th><a href="/wiki/Software_license" title="Software license">License</a> </th> <th><a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a> </th> <th><a href="/wiki/Linux" title="Linux">Linux</a> </th> <th><a href="/wiki/MacOS" title="MacOS">macOS</a> </th> <th><a href="/wiki/Software_developer" class="mw-redirect" title="Software developer">Developer</a> </th></tr> <tr> <td><a href="/wiki/Microsoft_Visual_Studio" class="mw-redirect" title="Microsoft Visual Studio">Microsoft Visual Studio</a> </td> <td><a href="/wiki/Proprietary_software" title="Proprietary software">Proprietary</a> (standard)<br /><a href="/wiki/Freeware" title="Freeware">Freeware</a> (community edition) </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> </td></tr> <tr> <td><a href="/wiki/Visual_Studio_Code" title="Visual Studio Code">Visual Studio Code</a><sup id="cite_ref-66" class="reference"><a href="#cite_note-66"><span class="cite-bracket">[</span>66<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/Proprietary_software" title="Proprietary software">Proprietary</a> (<a href="/wiki/Binary_code" title="Binary code">binary code</a>)<br /><a href="/wiki/MIT_License" title="MIT License">MIT License</a> (<a href="/wiki/Source_code" title="Source code">source code</a>) </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> </td></tr> <tr> <td><a href="/wiki/Rider_(software)" class="mw-redirect" title="Rider (software)">Rider</a><sup id="cite_ref-67" class="reference"><a href="#cite_note-67"><span class="cite-bracket">[</span>67<span class="cite-bracket">]</span></a></sup> </td> <td style="background: #E7E7FF; color:black; vertical-align: middle; text-align: center;" class="table-proprietary"><a href="/wiki/Proprietary_software" title="Proprietary software">Proprietary</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td><a href="/wiki/JetBrains" title="JetBrains">JetBrains</a> </td></tr></tbody></table></div></div> <div class="mw-heading mw-heading2"><h2 id="Application_areas">Application areas</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=16" title="Edit section: Application areas"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>F# is a <a href="/wiki/General-purpose_programming_language" title="General-purpose programming language">general-purpose programming language</a>. </p> <div class="mw-heading mw-heading3"><h3 id="Web_programming">Web programming</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=17" title="Edit section: Web programming"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The <a rel="nofollow" class="external text" href="https://safe-stack.github.io/">SAFE Stack</a> is an end-to-end F# stack to develop web applications. It uses <a href="/wiki/ASP.NET_Core" title="ASP.NET Core">ASP.NET Core</a> on the server side and <a rel="nofollow" class="external text" href="https://fable.io">Fable</a> on the client side.<sup id="cite_ref-68" class="reference"><a href="#cite_note-68"><span class="cite-bracket">[</span>68<span class="cite-bracket">]</span></a></sup> </p><p>An alternative end-to-end F# option is the <a href="/wiki/WebSharper" title="WebSharper">WebSharper</a> framework.<sup id="cite_ref-websharper_69-0" class="reference"><a href="#cite_note-websharper-69"><span class="cite-bracket">[</span>69<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Cross-platform_app_development">Cross-platform app development</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=18" title="Edit section: Cross-platform app development"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>F# can be used together with the <a rel="nofollow" class="external text" href="https://visualstudio.microsoft.com/xamarin/">Visual Studio Tools for Xamarin</a> to develop apps for <a href="/wiki/IOS" title="IOS">iOS</a> and <a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a>. The <a rel="nofollow" class="external text" href="https://github.com/fsprojects/Fabulous">Fabulous</a> library provides a more comfortable functional interface. </p> <div class="mw-heading mw-heading3"><h3 id="Analytical_programming">Analytical programming</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=19" title="Edit section: Analytical programming"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Among others, F# is used for quantitative finance programming,<sup id="cite_ref-70" class="reference"><a href="#cite_note-70"><span class="cite-bracket">[</span>70<span class="cite-bracket">]</span></a></sup> energy trading and portfolio optimization,<sup id="cite_ref-71" class="reference"><a href="#cite_note-71"><span class="cite-bracket">[</span>71<span class="cite-bracket">]</span></a></sup> machine learning,<sup id="cite_ref-72" class="reference"><a href="#cite_note-72"><span class="cite-bracket">[</span>72<span class="cite-bracket">]</span></a></sup> business intelligence<sup id="cite_ref-73" class="reference"><a href="#cite_note-73"><span class="cite-bracket">[</span>73<span class="cite-bracket">]</span></a></sup> and social gaming on <a href="/wiki/Facebook" title="Facebook">Facebook</a>.<sup id="cite_ref-74" class="reference"><a href="#cite_note-74"><span class="cite-bracket">[</span>74<span class="cite-bracket">]</span></a></sup> </p><p>In the 2010s, F# has been positioned as an optimized alternative to <a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>. F#'s scripting ability and inter-language compatibility with all Microsoft products have made it popular among developers.<sup id="cite_ref-75" class="reference"><a href="#cite_note-75"><span class="cite-bracket">[</span>75<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Scripting">Scripting</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=20" title="Edit section: Scripting"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>F# can be used as a scripting language, mainly for desktop <a href="/wiki/Read%E2%80%93eval%E2%80%93print_loop" title="Read–eval–print loop">read–eval–print loop</a> (REPL) scripting.<sup id="cite_ref-76" class="reference"><a href="#cite_note-76"><span class="cite-bracket">[</span>76<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Open-source_community">Open-source community</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=21" title="Edit section: Open-source community"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The F# <a href="/wiki/Open-source_model" class="mw-redirect" title="Open-source model">open-source</a> community includes the F# Software Foundation<sup id="cite_ref-fsharporg_10-2" class="reference"><a href="#cite_note-fsharporg-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> and the F# Open Source Group at <a href="/wiki/GitHub" title="GitHub">GitHub</a>.<sup id="cite_ref-fsharposg_11-1" class="reference"><a href="#cite_note-fsharposg-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> Popular open-source F# projects include: </p> <ul><li><a rel="nofollow" class="external text" href="https://fable.io/">Fable</a>, an F# to Javascript transpiler based on <a rel="nofollow" class="external text" href="https://babeljs.io">Babel</a>.</li> <li><a rel="nofollow" class="external text" href="https://fsprojects.github.io/Paket/">Paket</a>, an alternative package manager for .NET that can still use <a href="/wiki/NuGet" title="NuGet">NuGet</a> repositories, but has centralised version-management.</li> <li><a rel="nofollow" class="external text" href="https://fake.build/">FAKE</a>, an F# friendly build-system.</li> <li><a rel="nofollow" class="external text" href="https://github.com/giraffe-fsharp/Giraffe">Giraffe</a>, a functionally oriented middleware for <a href="/wiki/ASP.NET_Core" title="ASP.NET Core">ASP.NET Core</a>.</li> <li><a rel="nofollow" class="external text" href="https://suave.io/">Suave</a>, a lightweight web-server and web-development library.</li></ul> <div class="mw-heading mw-heading2"><h2 id="Compatibility">Compatibility</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=22" title="Edit section: Compatibility"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>F# features a legacy "ML compatibility mode" that can directly compile programs written in a large subset of OCaml roughly, with no functors, objects, polymorphic variants, or other additions. </p> <div class="mw-heading mw-heading2"><h2 id="Examples">Examples</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=23" title="Edit section: Examples"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A few small samples follow: </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// This is a comment for a sample hello world program.</span> <span class="n">printfn</span><span class="w"> </span><span class="s">"Hello World!"</span> </pre></div> <p>A record type definition. Records are immutable by default and are compared by structural equality. </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="k">type</span><span class="w"> </span><span class="nc">Person</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">{</span> <span class="w"> </span><span class="n">FirstName</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span> <span class="w"> </span><span class="n">LastName</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span> <span class="w"> </span><span class="n">Age</span><span class="o">:</span><span class="w"> </span><span class="n">int</span> <span class="o">}</span> <span class="c1">// Creating an instance of the record</span> <span class="k">let</span><span class="w"> </span><span class="nv">person</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">{</span><span class="w"> </span><span class="n">FirstName</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"John"</span><span class="o">;</span><span class="w"> </span><span class="n">LastName</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"Doe"</span><span class="o">;</span><span class="w"> </span><span class="n">Age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">30</span><span class="w"> </span><span class="o">}</span> </pre></div> <p><br /> A Person class with a constructor taking a name and age and two immutable properties. </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="sd">/// This is a documentation comment for a type definition.</span> <span class="k">type</span><span class="w"> </span><span class="nc">Person</span><span class="o">(</span><span class="n">name</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="o">,</span><span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">int</span><span class="o">)</span><span class="w"> </span><span class="o">=</span> <span class="w"> </span><span class="k">member</span><span class="w"> </span><span class="n">x</span><span class="p">.</span><span class="nf">Name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">name</span> <span class="w"> </span><span class="k">member</span><span class="w"> </span><span class="n">x</span><span class="p">.</span><span class="nf">Age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">age</span> <span class="w"> </span> <span class="sd">/// class instantiation</span> <span class="k">let</span><span class="w"> </span><span class="nv">mrSmith</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Person</span><span class="o">(</span><span class="s">"Smith"</span><span class="o">,</span><span class="w"> </span><span class="mi">42</span><span class="o">)</span> </pre></div> <p>A simple example that is often used to demonstrate the syntax of functional languages is the <a href="/wiki/Factorial_function" class="mw-redirect" title="Factorial function">factorial function</a> for non-negative 32-bit integers, here shown in F#: </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="sd">/// Using pattern matching expression</span> <span class="k">let</span><span class="w"> </span><span class="nv">rec</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span> <span class="w"> </span><span class="k">match</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="k">with</span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="mi">1</span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">_</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="o">)</span> <span class="sd">/// For a single-argument functions there is syntactic sugar (pattern matching function):</span> <span class="k">let</span><span class="w"> </span><span class="nv">rec</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">function</span><span class="w"> </span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="mi">1</span><span class="w"> </span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="o">)</span> <span class="w"> </span> <span class="sd">/// Using fold and range operator</span> <span class="k">let</span><span class="w"> </span><span class="nv">factorial</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">[</span><span class="mi">1</span><span class="o">..</span><span class="n">n</span><span class="o">]</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nn">Seq</span><span class="p">.</span><span class="n">fold</span><span class="w"> </span><span class="o">(*)</span><span class="w"> </span><span class="mi">1</span> </pre></div> <p>Iteration examples: </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="sd">/// Iteration using a 'for' loop</span> <span class="k">let</span><span class="w"> </span><span class="nv">printList</span><span class="w"> </span><span class="n">lst</span><span class="w"> </span><span class="o">=</span><span class="w"> </span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">lst</span><span class="w"> </span><span class="k">do</span> <span class="w"> </span><span class="n">printfn</span><span class="w"> </span><span class="o">$</span><span class="s">"{x}"</span><span class="w"> </span> <span class="sd">/// Iteration using a higher-order function</span> <span class="k">let</span><span class="w"> </span><span class="nv">printList2</span><span class="w"> </span><span class="n">lst</span><span class="w"> </span><span class="o">=</span><span class="w"> </span> <span class="w"> </span><span class="nn">List</span><span class="p">.</span><span class="n">iter</span><span class="w"> </span><span class="o">(</span><span class="n">printfn</span><span class="w"> </span><span class="s">"%d"</span><span class="o">)</span><span class="w"> </span><span class="n">lst</span> <span class="sd">/// Iteration using a recursive function and pattern matching</span> <span class="k">let</span><span class="w"> </span><span class="nv">rec</span><span class="w"> </span><span class="n">printList3</span><span class="w"> </span><span class="n">lst</span><span class="w"> </span><span class="o">=</span> <span class="w"> </span><span class="k">match</span><span class="w"> </span><span class="n">lst</span><span class="w"> </span><span class="k">with</span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="bp">[]</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="bp">()</span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">h</span><span class="w"> </span><span class="o">::</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">-></span> <span class="w"> </span><span class="n">printfn</span><span class="w"> </span><span class="s">"%d"</span><span class="w"> </span><span class="n">h</span> <span class="w"> </span><span class="n">printList3</span><span class="w"> </span><span class="n">t</span> </pre></div> <p>Fibonacci examples: </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="sd">/// Fibonacci Number formula</span> <span class="o">[<</span><span class="n">TailCall</span><span class="o">>]</span> <span class="k">let</span><span class="w"> </span><span class="nv">fib</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span> <span class="w"> </span><span class="k">let</span><span class="w"> </span><span class="nv">rec</span><span class="w"> </span><span class="n">g</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="n">f0</span><span class="w"> </span><span class="n">f1</span><span class="w"> </span><span class="o">=</span> <span class="w"> </span><span class="k">match</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="k">with</span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">f0</span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">f1</span> <span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">_</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">g</span><span class="w"> </span><span class="o">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="o">)</span><span class="w"> </span><span class="n">f1</span><span class="w"> </span><span class="o">(</span><span class="n">f0</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">f1</span><span class="o">)</span> <span class="w"> </span><span class="n">g</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="mi">1</span> <span class="sd">/// Another approach - a lazy infinite sequence of Fibonacci numbers</span> <span class="k">let</span><span class="w"> </span><span class="nv">fibSeq</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nn">Seq</span><span class="p">.</span><span class="n">unfold</span><span class="w"> </span><span class="o">(</span><span class="k">fun</span><span class="w"> </span><span class="o">(</span><span class="n">a</span><span class="o">,</span><span class="n">b</span><span class="o">)</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">Some</span><span class="o">(</span><span class="n">a</span><span class="o">+</span><span class="n">b</span><span class="o">,</span><span class="w"> </span><span class="o">(</span><span class="n">b</span><span class="o">,</span><span class="w"> </span><span class="n">a</span><span class="o">+</span><span class="n">b</span><span class="o">)))</span><span class="w"> </span><span class="o">(</span><span class="mi">0</span><span class="o">,</span><span class="mi">1</span><span class="o">)</span> <span class="c1">// Print even fibs</span> <span class="o">[</span><span class="mi">1</span><span class="w"> </span><span class="o">..</span><span class="w"> </span><span class="mi">10</span><span class="o">]</span> <span class="o">|></span><span class="w"> </span><span class="nn">List</span><span class="p">.</span><span class="n">map</span><span class="w"> </span><span class="n">fib</span> <span class="o">|></span><span class="w"> </span><span class="nn">List</span><span class="p">.</span><span class="n">filter</span><span class="w"> </span><span class="o">(</span><span class="k">fun</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="o">(</span><span class="n">n</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">2</span><span class="o">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="o">)</span> <span class="o">|></span><span class="w"> </span><span class="n">printList</span> <span class="c1">// Same thing, using a list expression</span> <span class="o">[</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">1</span><span class="o">..</span><span class="mi">10</span><span class="w"> </span><span class="k">do</span> <span class="w"> </span><span class="k">let</span><span class="w"> </span><span class="nv">r</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">fib</span><span class="w"> </span><span class="n">i</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">then</span><span class="w"> </span><span class="k">yield</span><span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="o">]</span> <span class="o">|></span><span class="w"> </span><span class="n">printList</span> </pre></div> <p>A sample Windows Forms program: </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// Open the Windows Forms library</span> <span class="k">open</span><span class="w"> </span><span class="nn">System.Windows.Forms</span> <span class="c1">// Create a window and set a few properties</span> <span class="k">let</span><span class="w"> </span><span class="nv">form</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Form</span><span class="o">(</span><span class="n">Visible</span><span class="o">=</span><span class="k">true</span><span class="o">,</span><span class="w"> </span><span class="n">TopMost</span><span class="o">=</span><span class="k">true</span><span class="o">,</span><span class="w"> </span><span class="n">Text</span><span class="o">=</span><span class="s">"Welcome to F#"</span><span class="o">)</span> <span class="c1">// Create a label to show some text in the form</span> <span class="k">let</span><span class="w"> </span><span class="nv">label</span><span class="w"> </span><span class="o">=</span> <span class="w"> </span><span class="k">let</span><span class="w"> </span><span class="nv">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="o">(</span><span class="mi">4</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">5</span><span class="o">)</span> <span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Label</span><span class="o">(</span><span class="n">Text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">$</span><span class="s">"{x}"</span><span class="o">)</span> <span class="c1">// Add the label to the form</span> <span class="n">form</span><span class="o">.</span><span class="n">Controls</span><span class="o">.</span><span class="n">Add</span><span class="o">(</span><span class="n">label</span><span class="o">)</span> <span class="c1">// Finally, run the form</span> <span class="o">[<</span><span class="nn">System</span><span class="p">.</span><span class="n">STAThread</span><span class="o">>]</span> <span class="nn">Application</span><span class="p">.</span><span class="n">Run</span><span class="o">(</span><span class="n">form</span><span class="o">)</span> </pre></div> <p>Asynchronous parallel programming sample (parallel CPU and I/O tasks): </p> <div class="mw-highlight mw-highlight-lang-fsharp mw-content-ltr" dir="ltr"><pre><span></span><span class="sd">/// A simple prime number detector</span> <span class="k">let</span><span class="w"> </span><span class="nv">isPrime</span><span class="w"> </span><span class="o">(</span><span class="n">n</span><span class="o">:</span><span class="n">int</span><span class="o">)</span><span class="w"> </span><span class="o">=</span> <span class="w"> </span><span class="k">let</span><span class="w"> </span><span class="nv">bound</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">int</span><span class="w"> </span><span class="o">(</span><span class="n">sqrt</span><span class="w"> </span><span class="o">(</span><span class="kt">float</span><span class="w"> </span><span class="n">n</span><span class="o">))</span> <span class="w"> </span><span class="n">seq</span><span class="w"> </span><span class="o">{</span><span class="mi">2</span><span class="w"> </span><span class="o">..</span><span class="w"> </span><span class="n">bound</span><span class="o">}</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nn">Seq</span><span class="p">.</span><span class="n">forall</span><span class="w"> </span><span class="o">(</span><span class="k">fun</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o"><></span><span class="w"> </span><span class="mi">0</span><span class="o">)</span> <span class="c1">// We are using async workflows</span> <span class="k">let</span><span class="w"> </span><span class="nv">primeAsync</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span> <span class="w"> </span><span class="n">async</span><span class="w"> </span><span class="o">{</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">(</span><span class="n">n</span><span class="o">,</span><span class="w"> </span><span class="n">isPrime</span><span class="w"> </span><span class="n">n</span><span class="o">)</span><span class="w"> </span><span class="o">}</span> <span class="sd">/// Return primes between m and n using multiple threads</span> <span class="k">let</span><span class="w"> </span><span class="nv">primes</span><span class="w"> </span><span class="n">m</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span> <span class="w"> </span><span class="n">seq</span><span class="w"> </span><span class="o">{</span><span class="n">m</span><span class="w"> </span><span class="o">..</span><span class="w"> </span><span class="n">n</span><span class="o">}</span> <span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nn">Seq</span><span class="p">.</span><span class="n">map</span><span class="w"> </span><span class="n">primeAsync</span> <span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nn">Async</span><span class="p">.</span><span class="n">Parallel</span> <span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nn">Async</span><span class="p">.</span><span class="n">RunSynchronously</span> <span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nn">Array</span><span class="p">.</span><span class="n">filter</span><span class="w"> </span><span class="n">snd</span> <span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nn">Array</span><span class="p">.</span><span class="n">map</span><span class="w"> </span><span class="n">fst</span> <span class="c1">// Run a test</span> <span class="n">primes</span><span class="w"> </span><span class="mi">1000000</span><span class="w"> </span><span class="mi">1002000</span> <span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nn">Array</span><span class="p">.</span><span class="n">iter</span><span class="w"> </span><span class="o">(</span><span class="n">printfn</span><span class="w"> </span><span class="s">"%d"</span><span class="o">)</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=24" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1266661725">.mw-parser-output .portalbox{padding:0;margin:0.5em 0;display:table;box-sizing:border-box;max-width:175px;list-style:none}.mw-parser-output .portalborder{border:1px solid var(--border-color-base,#a2a9b1);padding:0.1em;background:var(--background-color-neutral-subtle,#f8f9fa)}.mw-parser-output .portalbox-entry{display:table-row;font-size:85%;line-height:110%;height:1.9em;font-style:italic;font-weight:bold}.mw-parser-output .portalbox-image{display:table-cell;padding:0.2em;vertical-align:middle;text-align:center}.mw-parser-output .portalbox-link{display:table-cell;padding:0.2em 0.2em 0.2em 0.3em;vertical-align:middle}@media(min-width:720px){.mw-parser-output .portalleft{margin:0.5em 1em 0.5em 0}.mw-parser-output .portalright{clear:right;float:right;margin:0.5em 0 0.5em 1em}}</style><ul role="navigation" aria-label="Portals" class="noprint portalbox portalborder portalright"> <li class="portalbox-entry"><span class="portalbox-image"><span class="noviewer" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/31/Free_and_open-source_software_logo_%282009%29.svg/28px-Free_and_open-source_software_logo_%282009%29.svg.png" decoding="async" width="28" height="28" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/31/Free_and_open-source_software_logo_%282009%29.svg/42px-Free_and_open-source_software_logo_%282009%29.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/31/Free_and_open-source_software_logo_%282009%29.svg/56px-Free_and_open-source_software_logo_%282009%29.svg.png 2x" data-file-width="512" data-file-height="512" /></span></span></span><span class="portalbox-link"><a href="/wiki/Portal:Free_and_open-source_software" title="Portal:Free and open-source software">Free and open-source software portal</a></span></li></ul> <ul><li><a href="/wiki/OCaml" title="OCaml">OCaml</a></li> <li><a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li> <li><a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=25" title="Edit section: Notes"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"> <div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-wikidata-b7795cdbe1c986c396615d64dda8a870f8c35d4c-v18-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-b7795cdbe1c986c396615d64dda8a870f8c35d4c-v18_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite class="citation web cs1"> <a rel="nofollow" class="external text" href="https://github.com/dotnet/fsharp/releases/tag/v12.9.100-beta.24522.2">https://github.com/dotnet/fsharp/releases/tag/v12.9.100-beta.24522.2</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft_id=https%3A%2F%2Fgithub.com%2Fdotnet%2Ffsharp%2Freleases%2Ftag%2Fv12.9.100-beta.24522.2&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_web" title="Template:Cite web">cite web</a>}}</code>: </span><span class="cs1-visible-error citation-comment">Missing or empty <code class="cs1-code">|title=</code> (<a href="/wiki/Help:CS1_errors#citation_missing_title" title="Help:CS1 errors">help</a>)</span></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/fsharp/fsharp/blob/master/License.txt">"F# Software Foundation's License"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a></i>. 14 October 2021.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=F%23+Software+Foundation%27s+License&rft.date=2021-10-14&rft_id=https%3A%2F%2Fgithub.com%2Ffsharp%2Ffsharp%2Fblob%2Fmaster%2FLicense.txt&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/Microsoft/visualfsharp/blob/master/License.txt">"Microsoft's F# License"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a></i>. 16 October 2021.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Microsoft%27s+F%23+License&rft.date=2021-10-16&rft_id=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvisualfsharp%2Fblob%2Fmaster%2FLicense.txt&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-haskellInfluence-4"><span class="mw-cite-backlink">^ <a href="#cite_ref-haskellInfluence_4-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-haskellInfluence_4-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFSymeGraniczCisternino2007">Syme, Granicz & Cisternino (2007</a>:2)</span> </li> <li id="cite_note-historyMSR-5"><span class="mw-cite-backlink">^ <a href="#cite_ref-historyMSR_5-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-historyMSR_5-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-historyMSR_5-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-historyMSR_5-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-historyMSR_5-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.microsoft.com/en-us/research/project/f-at-microsoft-research/">"F# Historical Acknowledgements"</a>. <i><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a></i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Microsoft&rft.atitle=F%23+Historical+Acknowledgements&rft_id=https%3A%2F%2Fwww.microsoft.com%2Fen-us%2Fresearch%2Fproject%2Ff-at-microsoft-research%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-ocamlOrigins-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-ocamlOrigins_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-ocamlOrigins_6-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSyme2006" class="citation web cs1"><a href="/wiki/Don_Syme" title="Don Syme">Syme, Don</a> (2006). <a rel="nofollow" class="external text" href="http://research.microsoft.com/apps/pubs/default.aspx?id=147193">"Leveraging .NET Meta-programming Components from F#"</a>. <q>[F#] is rooted in the Core ML design, and in particular has a core language largely compatible with that of OCaml</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Leveraging+.NET+Meta-programming+Components+from+F%23&rft.date=2006&rft.aulast=Syme&rft.aufirst=Don&rft_id=http%3A%2F%2Fresearch.microsoft.com%2Fapps%2Fpubs%2Fdefault.aspx%3Fid%3D147193&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text">for async</span> </li> <li id="cite_note-js-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-js_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-js_8-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-js_8-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-js_8-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-js_8-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-js_8-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-js_8-6"><sup><i><b>g</b></i></sup></a> <a href="#cite_ref-js_8-7"><sup><i><b>h</b></i></sup></a> <a href="#cite_ref-js_8-8"><sup><i><b>i</b></i></sup></a> <a href="#cite_ref-js_8-9"><sup><i><b>j</b></i></sup></a> <a href="#cite_ref-js_8-10"><sup><i><b>k</b></i></sup></a> <a href="#cite_ref-js_8-11"><sup><i><b>l</b></i></sup></a> <a href="#cite_ref-js_8-12"><sup><i><b>m</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFThe_F#_Software_Foundation" class="citation web cs1">The F# Software Foundation. <a rel="nofollow" class="external text" href="http://fsharp.org/use/web-apps/">"Using F# for Web Applications"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-07-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Using+F%23+for+Web+Applications&rft.au=The+F%23+Software+Foundation&rft_id=http%3A%2F%2Ffsharp.org%2Fuse%2Fweb-apps%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-gpgpu-9"><span class="mw-cite-backlink">^ <a href="#cite_ref-gpgpu_9-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-gpgpu_9-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-gpgpu_9-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-gpgpu_9-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-gpgpu_9-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-gpgpu_9-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-gpgpu_9-6"><sup><i><b>g</b></i></sup></a> <a href="#cite_ref-gpgpu_9-7"><sup><i><b>h</b></i></sup></a> <a href="#cite_ref-gpgpu_9-8"><sup><i><b>i</b></i></sup></a> <a href="#cite_ref-gpgpu_9-9"><sup><i><b>j</b></i></sup></a> <a href="#cite_ref-gpgpu_9-10"><sup><i><b>k</b></i></sup></a> <a href="#cite_ref-gpgpu_9-11"><sup><i><b>l</b></i></sup></a> <a href="#cite_ref-gpgpu_9-12"><sup><i><b>m</b></i></sup></a> <a href="#cite_ref-gpgpu_9-13"><sup><i><b>n</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFThe_F#_Software_Foundation" class="citation web cs1">The F# Software Foundation. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20191225110926/http://fsharp.org/use/gpu/">"Using F# for GPU Programming"</a>. Archived from <a rel="nofollow" class="external text" href="http://fsharp.org/use/gpu/">the original</a> on 2019-12-25<span class="reference-accessdate">. Retrieved <span class="nowrap">2019-12-25</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Using+F%23+for+GPU+Programming&rft.au=The+F%23+Software+Foundation&rft_id=http%3A%2F%2Ffsharp.org%2Fuse%2Fgpu%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-fsharporg-10"><span class="mw-cite-backlink">^ <a href="#cite_ref-fsharporg_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-fsharporg_10-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-fsharporg_10-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFThe_F#_Software_Foundation" class="citation web cs1">The F# Software Foundation. <a rel="nofollow" class="external text" href="http://fsharp.org">"The F# Software Foundation"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+F%23+Software+Foundation&rft.au=The+F%23+Software+Foundation&rft_id=http%3A%2F%2Ffsharp.org&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-fsharposg-11"><span class="mw-cite-backlink">^ <a href="#cite_ref-fsharposg_11-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-fsharposg_11-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFThe_F#_Software_Foundation" class="citation web cs1">The F# Software Foundation. <a rel="nofollow" class="external text" href="https://fsharp.github.io">"F# Compiler (open source edition) @ github"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=F%23+Compiler+%28open+source+edition%29+%40+github&rft.au=The+F%23+Software+Foundation&rft_id=https%3A%2F%2Ffsharp.github.io&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/visualstudio/ide/fsharp-visual-studio">"Develop with Visual F# in Visual Studio"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-07-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Develop+with+Visual+F%23+in+Visual+Studio&rft_id=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fvisualstudio%2Fide%2Ffsharp-visual-studio&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.jetbrains.com/help/rider/F_Sharp.html">"F#"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-07-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=F%23&rft_id=https%3A%2F%2Fwww.jetbrains.com%2Fhelp%2Frider%2FF_Sharp.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSyme" class="citation web cs1">Syme, Don. <a rel="nofollow" class="external text" href="http://blogs.msdn.com/b/dsyme/archive/2005/05/21/420795.aspx">"F# 1.0.8 released"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">September 7,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=F%23+1.0.8+released&rft.pub=Microsoft&rft.aulast=Syme&rft.aufirst=Don&rft_id=http%3A%2F%2Fblogs.msdn.com%2Fb%2Fdsyme%2Farchive%2F2005%2F05%2F21%2F420795.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSyme" class="citation web cs1">Syme, Don. <a rel="nofollow" class="external text" href="http://blogs.msdn.com/b/dsyme/archive/2010/04/12/f-2-0-released-as-part-of-visual-studio-2010.aspx">"F# 2.0 released as part of Visual Studio 2010"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">September 7,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=F%23+2.0+released+as+part+of+Visual+Studio+2010&rft.pub=Microsoft&rft.aulast=Syme&rft.aufirst=Don&rft_id=http%3A%2F%2Fblogs.msdn.com%2Fb%2Fdsyme%2Farchive%2F2010%2F04%2F12%2Ff-2-0-released-as-part-of-visual-studio-2010.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFZander" class="citation web cs1">Zander, Jason. <a rel="nofollow" class="external text" href="http://blogs.msdn.com/b/jasonz/archive/2012/08/15/visual-studio-2012-and-net-framework-4-5-released-to-the-web.aspx">"Visual Studio 2012 and .NET Framework 4.5 released to the web"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">September 7,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Visual+Studio+2012+and+.NET+Framework+4.5+released+to+the+web&rft.pub=Microsoft&rft.aulast=Zander&rft.aufirst=Jason&rft_id=http%3A%2F%2Fblogs.msdn.com%2Fb%2Fjasonz%2Farchive%2F2012%2F08%2F15%2Fvisual-studio-2012-and-net-framework-4-5-released-to-the-web.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://blogs.msdn.com/b/visualstudio/archive/2013/10/17/visual-studio-2013-released-to-web.aspx">"Visual Studio 2013 released to web"</a>. Microsoft. 17 October 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">September 7,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Visual+Studio+2013+released+to+web&rft.pub=Microsoft&rft.date=2013-10-17&rft_id=http%3A%2F%2Fblogs.msdn.com%2Fb%2Fvisualstudio%2Farchive%2F2013%2F10%2F17%2Fvisual-studio-2013-released-to-web.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://blogs.msdn.com/b/dotnet/archive/2015/07/20/announcing-the-rtm-of-visual-f-4-0.aspx">"Announcing the RTM of Visual F# 4.0"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">September 15,</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Announcing+the+RTM+of+Visual+F%23+4.0&rft.pub=Microsoft&rft_id=http%3A%2F%2Fblogs.msdn.com%2Fb%2Fdotnet%2Farchive%2F2015%2F07%2F20%2Fannouncing-the-rtm-of-visual-f-4-0.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://blogs.msdn.microsoft.com/dotnet/2017/03/07/announcing-f-4-1-and-the-visual-f-tools-for-visual-studio-2017-2/">"Announcing F# 4.1 and the Visual F# Tools for Visual Studio 2017"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2017-03-08</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Announcing+F%23+4.1+and+the+Visual+F%23+Tools+for+Visual+Studio+2017&rft_id=https%3A%2F%2Fblogs.msdn.microsoft.com%2Fdotnet%2F2017%2F03%2F07%2Fannouncing-f-4-1-and-the-visual-f-tools-for-visual-studio-2017-2%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blogs.msdn.microsoft.com/dotnet/2018/08/14/announcing-f-4-5/">"Announcing F# 4.5"</a>. Microsoft. 14 August 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">August 14,</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Announcing+F%23+4.5&rft.pub=Microsoft&rft.date=2018-08-14&rft_id=https%3A%2F%2Fblogs.msdn.microsoft.com%2Fdotnet%2F2018%2F08%2F14%2Fannouncing-f-4-5%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.nuget.org/packages/FSharp.Core/4.5.0">"FSharp.Core 4.5.0"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=FSharp.Core+4.5.0&rft_id=https%3A%2F%2Fwww.nuget.org%2Fpackages%2FFSharp.Core%2F4.5.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://dotnet.microsoft.com/download/dotnet/2.1">"Download .NET Core 2.1 (Linux, macOS, and Windows)"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">May 13,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Download+.NET+Core+2.1+%28Linux%2C+macOS%2C+and+Windows%29&rft.pub=Microsoft&rft_id=https%3A%2F%2Fdotnet.microsoft.com%2Fdownload%2Fdotnet%2F2.1&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://devblogs.microsoft.com/dotnet/announcing-f-4-6/">"Announcing F# 4.6"</a>. Microsoft. 29 March 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">March 29,</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Announcing+F%23+4.6&rft.pub=Microsoft&rft.date=2019-03-29&rft_id=https%3A%2F%2Fdevblogs.microsoft.com%2Fdotnet%2Fannouncing-f-4-6%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.nuget.org/packages/FSharp.Core/4.6.0">"FSharp.Core 4.6.0"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=FSharp.Core+4.6.0&rft_id=https%3A%2F%2Fwww.nuget.org%2Fpackages%2FFSharp.Core%2F4.6.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://dotnet.microsoft.com/download/dotnet/2.2">"Download .NET Core 2.2 (Linux, macOS, and Windows)"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">May 13,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Download+.NET+Core+2.2+%28Linux%2C+macOS%2C+and+Windows%29&rft.pub=Microsoft&rft_id=https%3A%2F%2Fdotnet.microsoft.com%2Fdownload%2Fdotnet%2F2.2&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://devblogs.microsoft.com/dotnet/announcing-f-4-7/">"Announcing F# 4.7"</a>. Microsoft. 23 September 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">September 23,</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Announcing+F%23+4.7&rft.pub=Microsoft&rft.date=2019-09-23&rft_id=https%3A%2F%2Fdevblogs.microsoft.com%2Fdotnet%2Fannouncing-f-4-7%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.nuget.org/packages/FSharp.Core/4.7.0">"FSharp.Core 4.7.0"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=FSharp.Core+4.7.0&rft_id=https%3A%2F%2Fwww.nuget.org%2Fpackages%2FFSharp.Core%2F4.7.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://dotnet.microsoft.com/download/dotnet/3.0">"Download .NET Core 3.0 (Linux, macOS, and Windows)"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">May 13,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Download+.NET+Core+3.0+%28Linux%2C+macOS%2C+and+Windows%29&rft.pub=Microsoft&rft_id=https%3A%2F%2Fdotnet.microsoft.com%2Fdownload%2Fdotnet%2F3.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-blogs.msdn.microsoft.com2-29"><span class="mw-cite-backlink">^ <a href="#cite_ref-blogs.msdn.microsoft.com2_29-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-blogs.msdn.microsoft.com2_29-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://devblogs.microsoft.com/dotnet/announcing-f-5/">"Announcing F# 5"</a>. November 10, 2020.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Announcing+F%23+5&rft.date=2020-11-10&rft_id=https%3A%2F%2Fdevblogs.microsoft.com%2Fdotnet%2Fannouncing-f-5%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://dotnet.microsoft.com/download/dotnet/5.0">"Download .NET 5.0 (Linux, macOS, and Windows)"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">May 13,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Download+.NET+5.0+%28Linux%2C+macOS%2C+and+Windows%29&rft.pub=Microsoft&rft_id=https%3A%2F%2Fdotnet.microsoft.com%2Fdownload%2Fdotnet%2F5.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://devblogs.microsoft.com/dotnet/fsharp-6-is-officially-here/">"F# 6 is officially here!"</a>. November 9, 2021.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=F%23+6+is+officially+here%21&rft.date=2021-11-09&rft_id=https%3A%2F%2Fdevblogs.microsoft.com%2Fdotnet%2Ffsharp-6-is-officially-here%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://dotnet.microsoft.com/download/dotnet/6.0">"Download .NET 6.0 (Linux, macOS, and Windows)"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">November 14,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Download+.NET+6.0+%28Linux%2C+macOS%2C+and+Windows%29&rft.pub=Microsoft&rft_id=https%3A%2F%2Fdotnet.microsoft.com%2Fdownload%2Fdotnet%2F6.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://devblogs.microsoft.com/dotnet/announcing-fsharp-7/">"Announcing F# 7"</a>. November 8, 2022.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Announcing+F%23+7&rft.date=2022-11-08&rft_id=https%3A%2F%2Fdevblogs.microsoft.com%2Fdotnet%2Fannouncing-fsharp-7%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://dotnet.microsoft.com/en-us/download/dotnet/7.0">"Download .NET 7.0 (Linux, macOS, and Windows)"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">November 8,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Download+.NET+7.0+%28Linux%2C+macOS%2C+and+Windows%29&rft.pub=Microsoft&rft_id=https%3A%2F%2Fdotnet.microsoft.com%2Fen-us%2Fdownload%2Fdotnet%2F7.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://devblogs.microsoft.com/dotnet/announcing-fsharp-8/">"Announcing F# 8"</a>. November 14, 2023.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Announcing+F%23+8&rft.date=2023-11-14&rft_id=https%3A%2F%2Fdevblogs.microsoft.com%2Fdotnet%2Fannouncing-fsharp-8%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-36"><span class="mw-cite-backlink"><b><a href="#cite_ref-36">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://dotnet.microsoft.com/en-us/download/dotnet/8.0">"Download .NET 8.0 (Linux, macOS, and Windows)"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">November 14,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Download+.NET+8.0+%28Linux%2C+macOS%2C+and+Windows%29&rft.pub=Microsoft&rft_id=https%3A%2F%2Fdotnet.microsoft.com%2Fen-us%2Fdownload%2Fdotnet%2F8.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-37">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://learn.microsoft.com/en-us/dotnet/fsharp/whats-new/fsharp-9">"What's new in F# 9"</a>. November 12, 2024.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=What%27s+new+in+F%23+9&rft.date=2024-11-12&rft_id=https%3A%2F%2Flearn.microsoft.com%2Fen-us%2Fdotnet%2Ffsharp%2Fwhats-new%2Ffsharp-9&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-38">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://dotnet.microsoft.com/en-us/download/dotnet/9.0">"Download .NET 9.0 (Linux, macOS, and Windows)"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">January 13,</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Download+.NET+9.0+%28Linux%2C+macOS%2C+and+Windows%29&rft.pub=Microsoft&rft_id=https%3A%2F%2Fdotnet.microsoft.com%2Fen-us%2Fdownload%2Fdotnet%2F9.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFEdwards2008" class="citation web cs1">Edwards, Kathryn (23 December 2008). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20181113210720/https://www.networkworld.com/article/2271225/software/the-a-z-of-programming-languages--f-.html">"The A-Z of programming languages: F#"</a>. <i><a href="/wiki/Network_World" class="mw-redirect" title="Network World">Network World</a></i>. IDG. Archived from <a rel="nofollow" class="external text" href="http://www.networkworld.com/article/2271225/software/the-a-z-of-programming-languages--f-.html">the original</a> on 13 November 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">8 August</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Network+World&rft.atitle=The+A-Z+of+programming+languages%3A+F%23&rft.date=2008-12-23&rft.aulast=Edwards&rft.aufirst=Kathryn&rft_id=http%3A%2F%2Fwww.networkworld.com%2Farticle%2F2271225%2Fsoftware%2Fthe-a-z-of-programming-languages--f-.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-40">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMcNamara" class="citation web cs1">McNamara, Brian. <a rel="nofollow" class="external text" href="http://blogs.msdn.com/b/fsharpteam/archive/2012/07/19/more-about-fsharp-3.0-language-features.aspx">"More About F# 3.0 Language Features"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">September 7,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=More+About+F%23+3.0+Language+Features&rft.pub=Microsoft&rft.aulast=McNamara&rft.aufirst=Brian&rft_id=http%3A%2F%2Fblogs.msdn.com%2Fb%2Ffsharpteam%2Farchive%2F2012%2F07%2F19%2Fmore-about-fsharp-3.0-language-features.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-41">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMcNamara" class="citation web cs1">McNamara, Brian. <a rel="nofollow" class="external text" href="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">"Announcing a pre-release of F# 3.1"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">September 7,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Announcing+a+pre-release+of+F%23+3.1&rft.pub=Microsoft&rft.aulast=McNamara&rft.aufirst=Brian&rft_id=http%3A%2F%2Fblogs.msdn.com%2Fb%2Ffsharpteam%2Farchive%2F2013%2F06%2F27%2Fannouncing-a-pre-release-of-f-3-1-and-the-visual-f-tools-in-visual-studio-2013.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-42">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://blogs.msdn.microsoft.com/dotnet/2015/07/20/announcing-the-rtm-of-visual-f-4-0/">"Announcing the RTM of Visual F# 4.0"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2017-03-08</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Announcing+the+RTM+of+Visual+F%23+4.0&rft_id=https%3A%2F%2Fblogs.msdn.microsoft.com%2Fdotnet%2F2015%2F07%2F20%2Fannouncing-the-rtm-of-visual-f-4-0%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-43">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://blogs.msdn.microsoft.com/dotnet/2017/03/07/announcing-f-4-1-and-the-visual-f-tools-for-visual-studio-2017-2/">"Announcing F# 4.1 and the Visual F# Tools for Visual Studio 2017"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2017-03-08</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Announcing+F%23+4.1+and+the+Visual+F%23+Tools+for+Visual+Studio+2017&rft_id=https%3A%2F%2Fblogs.msdn.microsoft.com%2Fdotnet%2F2017%2F03%2F07%2Fannouncing-f-4-1-and-the-visual-f-tools-for-visual-studio-2017-2%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-blogs.msdn.microsoft.com.4.7-44"><span class="mw-cite-backlink"><b><a href="#cite_ref-blogs.msdn.microsoft.com.4.7_44-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://devblogs.microsoft.com/dotnet/announcing-f-4-7/">"Announcing F# 4.7"</a>. 23 September 2019.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Announcing+F%23+4.7&rft.date=2019-09-23&rft_id=https%3A%2F%2Fdevblogs.microsoft.com%2Fdotnet%2Fannouncing-f-4-7%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-blogs.msdn.microsoft.com.5.0-45"><span class="mw-cite-backlink"><b><a href="#cite_ref-blogs.msdn.microsoft.com.5.0_45-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://devblogs.microsoft.com/dotnet/announcing-f-5/">"Announcing F# 5"</a>. 10 November 2020.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Announcing+F%23+5&rft.date=2020-11-10&rft_id=https%3A%2F%2Fdevblogs.microsoft.com%2Fdotnet%2Fannouncing-f-5%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-46"><span class="mw-cite-backlink"><b><a href="#cite_ref-46">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/dotnet/fsharp/whats-new/fsharp-6">"What's new in F# 6 - F# Guide"</a>. 10 March 2023.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=What%27s+new+in+F%23+6+-+F%23+Guide&rft.date=2023-03-10&rft_id=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fdotnet%2Ffsharp%2Fwhats-new%2Ffsharp-6&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-47"><span class="mw-cite-backlink"><b><a href="#cite_ref-47">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://devblogs.microsoft.com/dotnet/announcing-fsharp-7/">"Announcing F# 7"</a>. 8 November 2022.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Announcing+F%23+7&rft.date=2022-11-08&rft_id=https%3A%2F%2Fdevblogs.microsoft.com%2Fdotnet%2Fannouncing-fsharp-7%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-48"><span class="mw-cite-backlink"><b><a href="#cite_ref-48">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://devblogs.microsoft.com/dotnet/announcing-fsharp-8/">"Announcing F# 8"</a>. 14 November 2023.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Announcing+F%23+8&rft.date=2023-11-14&rft_id=https%3A%2F%2Fdevblogs.microsoft.com%2Fdotnet%2Fannouncing-fsharp-8%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-49"><span class="mw-cite-backlink"><b><a href="#cite_ref-49">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://devblogs.microsoft.com/dotnet/simplifying-fsharp-computations-with-the-new-while-keyword/">"Simplifying F# computations with the new 'while!' keyword'<span class="cs1-kern-right"></span>"</a>. 20 September 2023.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Simplifying+F%23+computations+with+the+new+%27while%21%27+keyword%27&rft.date=2023-09-20&rft_id=https%3A%2F%2Fdevblogs.microsoft.com%2Fdotnet%2Fsimplifying-fsharp-computations-with-the-new-while-keyword%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-50"><span class="mw-cite-backlink"><b><a href="#cite_ref-50">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a class="external text" href="https://en.wikibooks.org/wiki/F_Sharp_Programming/Computation_Expressions">"F Sharp Programming/Computation Expressions - Wikibooks, open books for an open world"</a>. <i>en.wikibooks.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2022-01-21</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=en.wikibooks.org&rft.atitle=F+Sharp+Programming%2FComputation+Expressions+-+Wikibooks%2C+open+books+for+an+open+world&rft_id=https%3A%2F%2Fen.wikibooks.org%2Fwiki%2FF_Sharp_Programming%2FComputation_Expressions&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-51"><span class="mw-cite-backlink"><b><a href="#cite_ref-51">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFkexugit2011" class="citation web cs1">kexugit (8 July 2011). <a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/archive/blogs/fsharpteam/tail-calls-in-f">"Tail calls in F#"</a>. <i>docs.microsoft.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2022-04-22</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.microsoft.com&rft.atitle=Tail+calls+in+F%23&rft.date=2011-07-08&rft.au=kexugit&rft_id=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Farchive%2Fblogs%2Ffsharpteam%2Ftail-calls-in-f&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-overview-52"><span class="mw-cite-backlink">^ <a href="#cite_ref-overview_52-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-overview_52-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-overview_52-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-overview_52-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-overview_52-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-overview_52-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-overview_52-6"><sup><i><b>g</b></i></sup></a> <a href="#cite_ref-overview_52-7"><sup><i><b>h</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://tomasp.net/articles/fsharp-i-introduction/article.pdf">"F# Language Overview"</a> <span class="cs1-format">(PDF)</span><span class="reference-accessdate">. Retrieved <span class="nowrap">2007-12-14</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=F%23+Language+Overview&rft_id=http%3A%2F%2Ftomasp.net%2Farticles%2Ffsharp-i-introduction%2Farticle.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-seq-53"><span class="mw-cite-backlink">^ <a href="#cite_ref-seq_53-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-seq_53-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://blogs.msdn.com/dsyme/archive/2007/09/22/some-details-on-f-computation-expressions-aka-monadic-or-workflow-syntax.aspx">"Some Details on F# Computation Expressions"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2007-12-14</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Some+Details+on+F%23+Computation+Expressions&rft_id=http%3A%2F%2Fblogs.msdn.com%2Fdsyme%2Farchive%2F2007%2F09%2F22%2Fsome-details-on-f-computation-expressions-aka-monadic-or-workflow-syntax.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-activePatterns-54"><span class="mw-cite-backlink">^ <a href="#cite_ref-activePatterns_54-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-activePatterns_54-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20121209125518/http://www.developerfusion.com/article/133772/pattern-matching-in-f-part-2-active-patterns">"Pattern Matching in F# Part 2 : Active Patterns"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.developerfusion.com/article/133772/pattern-matching-in-f-part-2-active-patterns/">the original</a> on 2012-12-09<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Pattern+Matching+in+F%23+Part+2+%3A+Active+Patterns&rft_id=http%3A%2F%2Fwww.developerfusion.com%2Farticle%2F133772%2Fpattern-matching-in-f-part-2-active-patterns%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-aw-55"><span class="mw-cite-backlink">^ <a href="#cite_ref-aw_55-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-aw_55-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-aw_55-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://blogs.msdn.com/dsyme/archive/2007/10/11/introducing-f-asynchronous-workflows.aspx">"Introducing F# Asynchronous Workflows"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2007-12-14</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Introducing+F%23+Asynchronous+Workflows&rft_id=http%3A%2F%2Fblogs.msdn.com%2Fdsyme%2Farchive%2F2007%2F10%2F11%2Fintroducing-f-asynchronous-workflows.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-56"><span class="mw-cite-backlink"><b><a href="#cite_ref-56">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/task-expressions">"Task Expressions"</a>. 19 April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-01-15</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Task+Expressions&rft.date=2022-04-19&rft_id=https%3A%2F%2Flearn.microsoft.com%2Fen-us%2Fdotnet%2Ffsharp%2Flanguage-reference%2Ftask-expressions&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-units-msdn-57"><span class="mw-cite-backlink"><b><a href="#cite_ref-units-msdn_57-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/dd233243.aspx">"Units of Measure (F#)"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Units+of+Measure+%28F%23%29&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fdd233243.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-units_extended-58"><span class="mw-cite-backlink"><b><a href="#cite_ref-units_extended_58-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/fsharp/fslang-design/blob/main/FSharp-6.0/FS-1091-Extend-Units-of-Measure.md">"Extend Units of Measure to Include More Numeric Types"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a></i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Extend+Units+of+Measure+to+Include+More+Numeric+Types&rft_id=https%3A%2F%2Fgithub.com%2Ffsharp%2Ffslang-design%2Fblob%2Fmain%2FFSharp-6.0%2FFS-1091-Extend-Units-of-Measure.md&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-units-59"><span class="mw-cite-backlink"><b><a href="#cite_ref-units_59-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://blogs.msdn.com/b/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx">"Units of Measure in F#: Part One, Introducing Units"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Units+of+Measure+in+F%23%3A+Part+One%2C+Introducing+Units&rft_id=http%3A%2F%2Fblogs.msdn.com%2Fb%2Fandrewkennedy%2Farchive%2F2008%2F08%2F29%2Funits-of-measure-in-f-part-one-introducing-units.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-quotations-60"><span class="mw-cite-backlink"><b><a href="#cite_ref-quotations_60-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/dd233212.aspx">"Code Quotations (F#)"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Code+Quotations+%28F%23%29&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fdd233212.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-typeproviders-61"><span class="mw-cite-backlink"><b><a href="#cite_ref-typeproviders_61-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/hh156509.aspx">"Type Providers"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Type+Providers&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fhh156509.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-62"><span class="mw-cite-backlink"><b><a href="#cite_ref-62">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://blogs.msdn.com/b/dsyme/archive/2012/09/21/new-tech-report-from-microsoft-research-strongly-typed-language-support-for-internet-scale-information-sources.aspx">"New Tech Report from Microsoft Research: Strongly-Typed Language Support for Internet-Scale Information Sources"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=New+Tech+Report+from+Microsoft+Research%3A+Strongly-Typed+Language+Support+for+Internet-Scale+Information+Sources&rft_id=http%3A%2F%2Fblogs.msdn.com%2Fb%2Fdsyme%2Farchive%2F2012%2F09%2F21%2Fnew-tech-report-from-microsoft-research-strongly-typed-language-support-for-internet-scale-information-sources.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-queries-63"><span class="mw-cite-backlink"><b><a href="#cite_ref-queries_63-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/vstudio/hh225374.aspx">"Query Expressions (F#)"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Query+Expressions+%28F%23%29&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fvstudio%2Fhh225374.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-irp-64"><span class="mw-cite-backlink"><b><a href="#cite_ref-irp_64-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.infoq.com/news/2011/09/Fsharp-3.0">"F# 3.0 – LINQ + Type Providers= Information Rich Programming"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=F%23+3.0+%E2%80%93+LINQ+%2B+Type+Providers%3D+Information+Rich+Programming&rft_id=http%3A%2F%2Fwww.infoq.com%2Fnews%2F2011%2F09%2FFsharp-3.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-65"><span class="mw-cite-backlink"><b><a href="#cite_ref-65">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAlexander_Kurakin2019" class="citation web cs1">Alexander Kurakin (15 March 2019). <a rel="nofollow" class="external text" href="https://blog.jetbrains.com/dotnet/2019/03/15/rider-2019-1-kicks-off-early-access-program/">"Rider 2019.1 Kicks off its Early Access Program!"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Rider+2019.1+Kicks+off+its+Early+Access+Program%21&rft.date=2019-03-15&rft.au=Alexander+Kurakin&rft_id=https%3A%2F%2Fblog.jetbrains.com%2Fdotnet%2F2019%2F03%2F15%2Frider-2019-1-kicks-off-early-access-program%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-66"><span class="mw-cite-backlink"><b><a href="#cite_ref-66">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://fsharp.org/use/windows/">"Use F# on Windows"</a>. <i>F# Software Foundation</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2018-08-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=F%23+Software+Foundation&rft.atitle=Use+F%23+on+Windows&rft_id=https%3A%2F%2Ffsharp.org%2Fuse%2Fwindows%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-67"><span class="mw-cite-backlink"><b><a href="#cite_ref-67">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.jetbrains.com/rider/features/">"Features – Rider"</a>. <i>JetBrains</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2018-08-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=JetBrains&rft.atitle=Features+%E2%80%93+Rider&rft_id=https%3A%2F%2Fwww.jetbrains.com%2Frider%2Ffeatures%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-68"><span class="mw-cite-backlink"><b><a href="#cite_ref-68">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://fable.io/">"Fable: JavaScript you can be proud of!"</a>. <i>fable.io</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2017-12-09</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=fable.io&rft.atitle=Fable%3A+JavaScript+you+can+be+proud+of%21&rft_id=http%3A%2F%2Ffable.io%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-websharper-69"><span class="mw-cite-backlink"><b><a href="#cite_ref-websharper_69-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFIntellifactory" class="citation web cs1">Intellifactory. <a rel="nofollow" class="external text" href="http://websharper.com">"WebSharper home"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=WebSharper+home&rft.au=Intellifactory&rft_id=http%3A%2F%2Fwebsharper.com&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-70"><span class="mw-cite-backlink"><b><a href="#cite_ref-70">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000006794">"Microsoft Case Studies:Microsoft Visual Studio 2012 - Financial Services Firm"</a>. <i><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-25</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Microsoft&rft.atitle=Microsoft+Case+Studies%3AMicrosoft+Visual+Studio+2012+-+Financial+Services+Firm&rft_id=http%3A%2F%2Fwww.microsoft.com%2Fcasestudies%2FCase_Study_Detail.aspx%3Fcasestudyid%3D4000006794&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-71"><span class="mw-cite-backlink"><b><a href="#cite_ref-71">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://blogs.msdn.com/b/dsyme/archive/2011/01/12/f-for-energy-trading-and-energy-portfolio-optimization.aspx">"F# for Energy Trading and Portfolio Optimization"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-25</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=F%23+for+Energy+Trading+and+Portfolio+Optimization&rft_id=http%3A%2F%2Fblogs.msdn.com%2Fb%2Fdsyme%2Farchive%2F2011%2F01%2F12%2Ff-for-energy-trading-and-energy-portfolio-optimization.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-72"><span class="mw-cite-backlink"><b><a href="#cite_ref-72">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000005226">"Microsoft Case Study: Grange Insurance"</a>. <i><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-25</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Microsoft&rft.atitle=Microsoft+Case+Study%3A+Grange+Insurance&rft_id=http%3A%2F%2Fwww.microsoft.com%2Fcasestudies%2FCase_Study_Detail.aspx%3FCaseStudyID%3D4000005226&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-73"><span class="mw-cite-backlink"><b><a href="#cite_ref-73">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFTrelford2007" class="citation book cs1">Trelford, Phil (2007). <a rel="nofollow" class="external text" href="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">"Learning with F#"</a>. <i>Proceedings of the 4th ACM SIGPLAN workshop on Commercial users of functional programming - CUFP '07</i>. pp. <span class="nowrap">1–</span>2. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F1362702.1362709">10.1145/1362702.1362709</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/9781450378444" title="Special:BookSources/9781450378444"><bdi>9781450378444</bdi></a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:24018363">24018363</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-25</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=Learning+with+F%23&rft.btitle=Proceedings+of+the+4th+ACM+SIGPLAN+workshop+on+Commercial+users+of+functional+programming+-+CUFP+%2707&rft.pages=%3Cspan+class%3D%22nowrap%22%3E1-%3C%2Fspan%3E2&rft.date=2007&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A24018363%23id-name%3DS2CID&rft_id=info%3Adoi%2F10.1145%2F1362702.1362709&rft.isbn=9781450378444&rft.aulast=Trelford&rft.aufirst=Phil&rft_id=http%3A%2F%2Fdl.acm.org%2Fcitation.cfm%3Fid%3D1362702.1362709%26coll%3DACM%26dl%3DACM%26type%3Dseries%26idx%3DSERIES824%2525E2%252588%252582%3Dseries%26WantType%3DProceedings%26title%3DICFP&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-74"><span class="mw-cite-backlink"><b><a href="#cite_ref-74">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://blogs.msdn.com/b/dsyme/archive/2012/10/23/f-job-in-social-gaming-inn-london.aspx">"F# Job in Facebook Social Gaming"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-11-25</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=F%23+Job+in+Facebook+Social+Gaming&rft_id=http%3A%2F%2Fblogs.msdn.com%2Fb%2Fdsyme%2Farchive%2F2012%2F10%2F23%2Ff-job-in-social-gaming-inn-london.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-75"><span class="mw-cite-backlink"><b><a href="#cite_ref-75">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://fsharp.org/testimonials/">"F# Developer Testimonials"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">May 25,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=F%23+Developer+Testimonials&rft_id=https%3A%2F%2Ffsharp.org%2Ftestimonials%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-76"><span class="mw-cite-backlink"><b><a href="#cite_ref-76">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-gb/archive/blogs/chrsmith/scripting-in-f">"Scripting in F#"</a>. 12 September 2008<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-01-17</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Scripting+in+F%23&rft.date=2008-09-12&rft_id=https%3A%2F%2Fdocs.microsoft.com%2Fen-gb%2Farchive%2Fblogs%2Fchrsmith%2Fscripting-in-f&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></span> </li> </ol></div></div> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=26" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSymeGraniczCisternino2007" class="citation cs2"><a href="/wiki/Don_Syme" title="Don Syme">Syme, Don</a>; Granicz, Adam; Cisternino, Antonio (2007), <i>Expert F#</i>, <a href="/wiki/Apress" class="mw-redirect" title="Apress">Apress</a></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Expert+F%23&rft.pub=Apress&rft.date=2007&rft.aulast=Syme&rft.aufirst=Don&rft.au=Granicz%2C+Adam&rft.au=Cisternino%2C+Antonio&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHarrop2010" class="citation cs2">Harrop, Jon (2010), <i>Visual F# 2010 for Technical Computing</i>, Flying Frog Consultancy</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Visual+F%23+2010+for+Technical+Computing&rft.pub=Flying+Frog+Consultancy&rft.date=2010&rft.aulast=Harrop&rft.aufirst=Jon&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFPickering2007" class="citation cs2">Pickering, Robert (2007), <i>Foundations of F#</i>, <a href="/wiki/Apress" class="mw-redirect" title="Apress">Apress</a></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Foundations+of+F%23&rft.pub=Apress&rft.date=2007&rft.aulast=Pickering&rft.aufirst=Robert&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSmith2009" class="citation cs2">Smith, Chris (2009), <i>Programming F#</i>, <a href="/wiki/O%27Reilly_Media" title="O'Reilly Media">O'Reilly</a></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Programming+F%23&rft.pub=O%27Reilly&rft.date=2009&rft.aulast=Smith&rft.aufirst=Chris&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFPetricek2009" class="citation cs2">Petricek, Tomas (2009), <i>Real World Functional Programming With Examples in F# and C#</i>, <a href="/wiki/Manning_Publications" title="Manning Publications">Manning Publications</a></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Real+World+Functional+Programming+With+Examples+in+F%23+and+C%23&rft.pub=Manning+Publications&rft.date=2009&rft.aulast=Petricek&rft.aufirst=Tomas&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHansenRischel2013" class="citation cs2">Hansen, Michael; Rischel, Hans (2013), <i>Functional Programming Using F#</i>, <a href="/wiki/Cambridge_University_Press" title="Cambridge University Press">Cambridge University Press</a></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Functional+Programming+Using+F%23&rft.pub=Cambridge+University+Press&rft.date=2013&rft.aulast=Hansen&rft.aufirst=Michael&rft.au=Rischel%2C+Hans&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAstborg2013" class="citation cs2">Astborg, Johan (2013), <a rel="nofollow" class="external text" href="https://www.packtpub.com/big-data-and-business-intelligence/f-quantitative-finance"><i>F# for Quantitative Finance</i></a>, <a href="/wiki/Packt_Publishing" class="mw-redirect" title="Packt Publishing">Packt Publishing</a></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=F%23+for+Quantitative+Finance&rft.pub=Packt+Publishing&rft.date=2013&rft.aulast=Astborg&rft.aufirst=Johan&rft_id=https%3A%2F%2Fwww.packtpub.com%2Fbig-data-and-business-intelligence%2Ff-quantitative-finance&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLundin2015" class="citation cs2">Lundin, Mikael (2015), <a rel="nofollow" class="external text" href="https://www.packtpub.com/application-development/testing-f"><i>Testing with F#</i></a>, <a href="/wiki/Packt_Publishing" class="mw-redirect" title="Packt Publishing">Packt Publishing</a></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Testing+with+F%23&rft.pub=Packt+Publishing&rft.date=2015&rft.aulast=Lundin&rft.aufirst=Mikael&rft_id=https%3A%2F%2Fwww.packtpub.com%2Fapplication-development%2Ftesting-f&rfr_id=info%3Asid%2Fen.wikipedia.org%3AF+Sharp+%28programming+language%29" class="Z3988"></span></li></ul> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=F_Sharp_(programming_language)&action=edit&section=27" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1235681985">.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}</style><style data-mw-deduplicate="TemplateStyles:r1237033735">@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}</style><div class="side-box side-box-right plainlinks sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}</style> <div class="side-box-flex"> <div class="side-box-image"><span class="noviewer" typeof="mw:File"><a href="/wiki/File:Wikibooks-logo-en-noslogan.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/40px-Wikibooks-logo-en-noslogan.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/60px-Wikibooks-logo-en-noslogan.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/80px-Wikibooks-logo-en-noslogan.svg.png 2x" data-file-width="400" data-file-height="400" /></a></span></div> <div class="side-box-text plainlist">Wikibooks has a book on the topic of: <i><b><a href="https://en.wikibooks.org/wiki/F_Sharp_Programming" class="extiw" title="wikibooks:F Sharp Programming">F Sharp Programming</a></b></i></div></div> </div> <ul><li><span class="official-website"><span class="url"><a rel="nofollow" class="external text" href="https://fsharp.org/">Official website</a></span></span> The F# Software Foundation</li> <li><a rel="nofollow" class="external text" href="https://fsharp.github.io">The F# Open Source Group at GitHub</a></li> <li><a rel="nofollow" class="external text" href="https://fsharp.net/">The Visual F# Developer Center</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20081119161341/http://www.fsharp.net/">Archived</a> 2008-11-19 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20121130163443/http://www.tryfsharp.org/">Try F#, for learning F# in a web browser</a></li> <li><a rel="nofollow" class="external text" href="http://fssnip.net">F# Snippets Site</a></li> <li><a rel="nofollow" class="external text" href="https://learn.microsoft.com/en-us/archive/blogs/fsharpteam/">The Visual F# team blog</a></li> <li><a rel="nofollow" class="external text" href="https://www.microsoft.com/en-us/research/project/f-at-microsoft-research/">The original Microsoft Research website for F#</a></li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110715231625/http://www.ctocorner.com/fsharp/book/default.aspx">The F# Survival Guide, Dec 2009 (Web-based book)</a></li> <li><a rel="nofollow" class="external text" href="http://fsharp.org/specs/language-spec/">The F# Language Specification</a></li> <li><a rel="nofollow" class="external text" href="http://www.developerfusion.com/article/122079/intro-to-f/">An introduction to F# programming</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110713133206/http://www.developerfusion.com/article/122079/intro-to-f/">Archived</a> 2011-07-13 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li> <li><a rel="nofollow" class="external text" href="http://opcoast.com/demos/fsharp/index.html">A tutorial showing the <i>process</i> of reaching a functional design; includes test and parallel coding</a></li></ul> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="ML_programming711" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="3"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:ML_programming" title="Template:ML programming"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/w/index.php?title=Template_talk:ML_programming&action=edit&redlink=1" class="new" title="Template talk:ML programming (page does not exist)"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:ML_programming" title="Special:EditPage/Template:ML programming"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="ML_programming711" style="font-size:114%;margin:0 4em"><a href="/wiki/ML_(programming_language)" title="ML (programming language)">ML</a> programming</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Software" title="Software">Software</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Programming_language_implementation" title="Programming language implementation">Implementations</a>,<br /><a href="/wiki/Dialect_(computing)" class="mw-redirect" title="Dialect (computing)">dialects</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Caml" title="Caml">Caml</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/OCaml" title="OCaml">OCaml</a>° <ul><li><a href="/wiki/Eff_(programming_language)" title="Eff (programming language)">Eff</a></li> <li><a href="/wiki/F*_(programming_language)" title="F* (programming language)">F*</a>°</li> <li><a class="mw-selflink selflink">F#</a>°</li> <li><a href="/wiki/JoCaml" title="JoCaml">JoCaml</a>°</li> <li><a href="/wiki/Reason_(programming_language)" title="Reason (programming language)">Reason</a>°</li></ul></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Standard_ML" title="Standard ML">Standard ML</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><i><a href="/wiki/Alice_(programming_language)" title="Alice (programming language)">Alice</a></i>°</li> <li><a href="/wiki/Concurrent_ML" title="Concurrent ML">Concurrent ML</a></li> <li><a href="/wiki/Extended_ML" title="Extended ML">Extended ML</a></li> <li><a href="/wiki/MLton" title="MLton">MLton</a>°</li> <li><a href="/wiki/Standard_ML_of_New_Jersey" title="Standard ML of New Jersey">Standard ML of New Jersey</a>° (SML/NJ)</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><i><a href="/wiki/Dependent_ML" title="Dependent ML">Dependent ML</a></i></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ATS_(programming_language)" title="ATS (programming language)">ATS</a>°</li></ul> </div></td></tr></tbody></table><div> <ul><li><a href="/wiki/Futhark_(programming_language)" title="Futhark (programming language)">Futhark</a>°</li> <li><a href="/wiki/Lennart_Augustsson#Languages" title="Lennart Augustsson">Lazy ML</a></li> <li><a href="/wiki/MacroML" title="MacroML">MacroML</a></li> <li><a href="/wiki/Ur_(programming_language)" title="Ur (programming language)">Ur</a>°</li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Programming_tool" title="Programming tool">Programming tools</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <li><a href="/wiki/Alt-Ergo" title="Alt-Ergo">Alt-Ergo</a>°</li> <li><a href="/wiki/Astr%C3%A9e_(static_analysis)" title="Astrée (static analysis)">Astrée</a></li> <li><a href="/wiki/Camlp4" title="Camlp4">Camlp4</a>°</li> <li><a href="/wiki/FFTW" title="FFTW">FFTW</a>°</li> <li><a href="/wiki/Frama-C" title="Frama-C">Frama-C</a>°</li> <li><a href="/wiki/Haxe" title="Haxe">Haxe</a>°</li> <li><a href="/wiki/Marionnet" title="Marionnet">Marionnet</a>°</li> <li><a href="/wiki/MTASC" title="MTASC">MTASC</a>°</li> <li><a href="/wiki/Poplog" title="Poplog">Poplog</a>°</li> <li><a href="/wiki/Semgrep" title="Semgrep">Semgrep</a>°</li> <li><a href="/wiki/SLAM_project" title="SLAM project">SLAM project</a></li> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Automated_theorem_proving" title="Automated theorem proving">Theorem provers</a>,<br /><a href="/wiki/Proof_assistant" title="Proof assistant">proof assistants</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Coq_(software)" title="Coq (software)">Coq</a>°</li> <li><a href="/wiki/HOL_(proof_assistant)" title="HOL (proof assistant)">HOL</a>° <ul><li><a href="/wiki/HOL_Light" title="HOL Light">HOL Light</a>°</li></ul></li> <li><a href="/wiki/Isabelle_(proof_assistant)" title="Isabelle (proof assistant)">Isabelle</a>°</li> <li><a href="/wiki/LEGO_(proof_assistant)" title="LEGO (proof assistant)">LEGO</a></li> <li><i><a href="/wiki/Logic_for_Computable_Functions" title="Logic for Computable Functions">Logic for Computable Functions</a></i></li> <li><a href="/wiki/Matita" title="Matita">Matita</a>°</li> <li><a href="/wiki/Twelf" title="Twelf">Twelf</a>°</li></ul> </div></td></tr></tbody></table><div> <ul><li><a href="/wiki/GeneWeb" title="GeneWeb">GeneWeb</a>°</li></ul></div></td><td class="noviewer navbox-image" rowspan="2" style="width:1px;padding:0 0 0 2px"><div><span typeof="mw:File"><a href="/wiki/File:OCaml_Logo.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/f/ff/OCaml_Logo.svg/110px-OCaml_Logo.svg.png" decoding="async" width="110" height="30" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/ff/OCaml_Logo.svg/165px-OCaml_Logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/ff/OCaml_Logo.svg/220px-OCaml_Logo.svg.png 2x" data-file-width="525" data-file-height="144" /></a></span></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Community_of_practice" title="Community of practice">Community</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th id="Designers9" scope="row" class="navbox-group" style="width:1%">Designers</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <li><a href="/wiki/Lennart_Augustsson" title="Lennart Augustsson">Lennart Augustsson</a> (Lazy ML)</li> <li><a href="/wiki/Damien_Doligez" title="Damien Doligez">Damien Doligez</a> (OCaml)</li> <li><a href="/wiki/G%C3%A9rard_Huet" title="Gérard Huet">Gérard Huet</a> (Caml)</li> <li><a href="/wiki/Xavier_Leroy" title="Xavier Leroy">Xavier Leroy</a> (Caml, OCaml)</li> <li><a href="/wiki/Robin_Milner" title="Robin Milner">Robin Milner</a> (ML)</li> <li><a href="/wiki/Don_Sannella" title="Don Sannella">Don Sannella</a> (Extended ML)</li> <li><a href="/wiki/Don_Syme" title="Don Syme">Don Syme</a> (F#)</li> </div></td></tr></tbody></table><div> <ul><li><a href="/wiki/Thierry_Coquand" title="Thierry Coquand">Thierry Coquand</a></li> <li><a href="/wiki/Steven_G._Johnson" title="Steven G. Johnson">Steven G. Johnson</a></li> <li><a href="/wiki/Christine_Paulin-Mohring" title="Christine Paulin-Mohring">Christine Paulin-Mohring</a></li> <li><a href="/wiki/Frank_Pfenning" title="Frank Pfenning">Frank Pfenning</a></li> <li><a href="/wiki/Simon_Thompson_(professor)" title="Simon Thompson (professor)">Simon Thompson</a></li></ul></div></td></tr><tr><td class="navbox-abovebelow" colspan="3"><div> <li><i>Italics</i> <b>= discontinued</b></li> <li><b>° = <a href="/wiki/Open-source_software" title="Open-source software">Open-source software</a></b><br /><span class="noviewer" typeof="mw:File"><a href="/wiki/File:Symbol_book_class2.svg" class="mw-file-description" title="Wikipedia book"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/8/89/Symbol_book_class2.svg/16px-Symbol_book_class2.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/89/Symbol_book_class2.svg/23px-Symbol_book_class2.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/89/Symbol_book_class2.svg/31px-Symbol_book_class2.svg.png 2x" data-file-width="180" data-file-height="185" /></a></span> <b><a href="https://en.wikibooks.org/wiki/OCaml" class="extiw" title="wikibooks:OCaml">Book</a></b> <span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b><a href="/wiki/Category:ML_programming_language_family" title="Category:ML programming language family">Category:Family:ML</a></b> <span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b><a href="/wiki/Category:OCaml_programming_language_family" title="Category:OCaml programming language family">Category:Family:OCaml</a></b> <span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b><a href="/wiki/Category:OCaml_software" title="Category:OCaml software">Category:Software:OCaml</a></b></li> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby=".NET630" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:.NET_Framework" title="Template:.NET Framework"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:.NET_Framework" title="Template talk:.NET Framework"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:.NET_Framework" title="Special:EditPage/Template:.NET Framework"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id=".NET630" style="font-size:114%;margin:0 4em"><a href="/wiki/.NET" title=".NET">.NET</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><a href="/wiki/Microsoft_.NET_strategy" title="Microsoft .NET strategy">.NET strategy</a></li> <li><a href="/wiki/List_of_.NET_libraries_and_frameworks" title="List of .NET libraries and frameworks">Libraries and frameworks</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Implementations</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/.NET" title=".NET">.NET</a> (Core)</li> <li><a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a> <ul><li><a href="/wiki/.NET_Framework_version_history" title=".NET Framework version history">Version history</a></li></ul></li> <li><a href="/wiki/.NET_Compact_Framework" title=".NET Compact Framework">.NET Compact Framework</a></li> <li><a href="/wiki/.NET_Micro_Framework" title=".NET Micro Framework">.NET Micro Framework</a></li> <li><a href="/wiki/DotGNU" title="DotGNU">DotGNU</a></li> <li><a href="/wiki/Mono_(software)" title="Mono (software)">Mono</a></li> <li><a href="/wiki/XNA_Framework" class="mw-redirect" title="XNA Framework">XNA Framework</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Software_architecture" title="Software architecture">Architecture</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Common_Language_Runtime" title="Common Language Runtime">Common Language Runtime</a> (CLR)</li> <li><a href="/wiki/COM_Interop" title="COM Interop">COM Interop</a></li> <li><a href="/wiki/Framework_Class_Library" title="Framework Class Library">Framework Class Library</a> (FCL)</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Software_component" title="Software component">Components</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ADO.NET" title="ADO.NET">ADO.NET</a> <ul><li><a href="/wiki/Entity_Framework" title="Entity Framework">Entity Framework</a></li></ul></li> <li><a href="/wiki/ASP.NET" title="ASP.NET">ASP.NET</a> <ul><li><a href="/wiki/ASP.NET_Web_Forms" title="ASP.NET Web Forms">Web Forms</a></li> <li><a href="/wiki/ASP.NET_AJAX" title="ASP.NET AJAX">AJAX</a></li> <li><a href="/wiki/ASP.NET_Core" title="ASP.NET Core">Core</a></li> <li><a href="/wiki/ASP.NET_Dynamic_Data" title="ASP.NET Dynamic Data">Dynamic Data</a></li> <li><a href="/wiki/ASP.NET_MVC" title="ASP.NET MVC">MVC</a></li> <li><a href="/wiki/ASP.NET_Razor" title="ASP.NET Razor">Razor</a></li></ul></li> <li><a href="/wiki/Avalonia_(software_framework)" title="Avalonia (software framework)">Avalonia</a></li> <li><a href="/wiki/ClickOnce" title="ClickOnce">ClickOnce</a></li> <li><a href="/wiki/Dynamic_Language_Runtime" title="Dynamic Language Runtime">Dynamic Language Runtime</a></li> <li><a href="/wiki/Extensible_Application_Markup_Language" title="Extensible Application Markup Language">Extensible Application Markup Language</a> (XAML)</li> <li><a href="/wiki/Language_Integrated_Query" title="Language Integrated Query">Language Integrated Query</a> (LINQ)</li> <li><a href="/wiki/Managed_Extensibility_Framework" title="Managed Extensibility Framework">Managed Extensibility Framework</a></li> <li><a href="/wiki/Microsoft_Silverlight" title="Microsoft Silverlight">Microsoft Silverlight</a></li> <li><a href="/wiki/Microsoft_XNA" title="Microsoft XNA">Microsoft XNA</a></li> <li><a href="/wiki/Parallel_Extensions" title="Parallel Extensions">Parallel Extensions</a></li> <li><a href="/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">Windows Communication Foundation</a> (WCF) <ul><li><a href="/wiki/WCF_Data_Services" title="WCF Data Services">WCF Data Services</a></li></ul></li> <li><a href="/wiki/Windows_Forms" title="Windows Forms">Windows Forms</a> (WinForms)</li> <li><a href="/wiki/Windows_Identity_Foundation" title="Windows Identity Foundation">Windows Identity Foundation</a> (WIF)</li> <li><a href="/wiki/Windows_Presentation_Foundation" title="Windows Presentation Foundation">Windows Presentation Foundation</a> (WPF)</li> <li><a href="/wiki/Windows_Workflow_Foundation" title="Windows Workflow Foundation">Windows Workflow Foundation</a> (WF)</li> <li><a href="/wiki/.NET_Remoting" title=".NET Remoting">.NET Remoting</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Programming_tool" title="Programming tool">Tools</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Decompiler" title="Decompiler">Decompilers</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/.NET_Reflector" title=".NET Reflector">.NET Reflector</a></li> <li><a href="/wiki/JetBrains" title="JetBrains">dotPeek</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Obfuscation_(software)" title="Obfuscation (software)">Obfuscators</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Dotfuscator" title="Dotfuscator">Dotfuscator</a></li> <li><a href="/wiki/Redgate" title="Redgate">SmartAssembly</a></li></ul> </div></td></tr><tr><td colspan="2" class="navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/CLR_Profiler" title="CLR Profiler">CLR Profiler</a></li> <li><a href="/wiki/ILAsm" title="ILAsm">ILAsm</a></li> <li><a href="/wiki/.NET_Compiler_Platform" class="mw-redirect" title=".NET Compiler Platform">.NET Compiler Platform</a></li> <li><a href="/wiki/Native_Image_Generator" title="Native Image Generator">Native Image Generator</a> (NGen)</li> <li><a href="/wiki/XAMLPad" class="mw-redirect" title="XAMLPad">XAMLPad</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Integrated_development_environment" title="Integrated development environment">IDEs</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Visual_Studio" class="mw-redirect" title="Microsoft Visual Studio">Visual Studio</a> <ul><li><a href="/wiki/Microsoft_Blend" title="Microsoft Blend">Blend</a></li> <li><a href="/wiki/Microsoft_Visual_Studio_Express" title="Microsoft Visual Studio Express">Express</a></li></ul></li> <li><a href="/wiki/MonoDevelop" title="MonoDevelop">MonoDevelop</a></li> <li><a href="/wiki/SharpDevelop" title="SharpDevelop">SharpDevelop</a></li> <li><a href="/wiki/Xamarin_Studio" class="mw-redirect" title="Xamarin Studio">Xamarin Studio</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Organizations</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/.NET_Foundation" title=".NET Foundation">.NET Foundation</a></li> <li><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a></li> <li><a href="/wiki/Xamarin" title="Xamarin">Xamarin</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/Category:.NET" title="Category:.NET">Category</a></li> <li><span class="noviewer" typeof="mw:File"><span title="List-Class article"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/16px-Symbol_list_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/23px-Symbol_list_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/31px-Symbol_list_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/.NET_Framework_version_history" title=".NET Framework version history">List</a></li> <li><span class="noviewer" typeof="mw:File"><span title="Commons page"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/12px-Commons-logo.svg.png" decoding="async" width="12" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/18px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/24px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></span></span> <a href="https://commons.wikimedia.org/wiki/Category:.NET" class="extiw" title="commons:Category:.NET">Commons</a></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby="Common_Language_Infrastructure106" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Common_Language_Infrastructure" title="Template:Common Language Infrastructure"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Common_Language_Infrastructure" title="Template talk:Common Language Infrastructure"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Common_Language_Infrastructure" title="Special:EditPage/Template:Common Language Infrastructure"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Common_Language_Infrastructure106" style="font-size:114%;margin:0 4em"><a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">Common Language Infrastructure</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Architecture</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Application_domain" title="Application domain">Application domain</a></li> <li><a href="/wiki/Code_Access_Security" title="Code Access Security">Code Access Security</a></li> <li><a href="/wiki/Common_Intermediate_Language" title="Common Intermediate Language">Common Intermediate Language</a> <ul><li><a href="/wiki/List_of_CIL_instructions" title="List of CIL instructions">instructions</a></li></ul></li> <li><a href="/wiki/Common_Type_System" title="Common Type System">Common Type System</a></li> <li><a href="/wiki/Platform_Invocation_Services" title="Platform Invocation Services">Platform Invocation Services</a></li> <li><a href="/wiki/Virtual_Execution_System" title="Virtual Execution System">Virtual Execution System</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Components</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Assembly_(CLI)" title="Assembly (CLI)">Assembly</a></li> <li><a href="/wiki/Delegate_(CLI)" title="Delegate (CLI)">Delegate</a></li> <li><a href="/wiki/Global_Assembly_Cache" title="Global Assembly Cache">Global Assembly Cache</a></li> <li><a href="/wiki/Manifest_(CLI)" title="Manifest (CLI)">Manifest</a></li> <li><a href="/wiki/Metadata_(CLI)" title="Metadata (CLI)">Metadata</a></li> <li><a href="/wiki/Standard_Libraries_(CLI)" title="Standard Libraries (CLI)">Standard Libraries</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Implementations</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Microsoft</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/.NET" title=".NET">.NET</a></li> <li><a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a></li> <li><a href="/wiki/.NET_Compact_Framework" title=".NET Compact Framework">.NET Compact Framework</a></li> <li><a href="/wiki/.NET_Micro_Framework" title=".NET Micro Framework">.NET Micro Framework</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Mono_(software)" title="Mono (software)">Mono</a></li> <li><a href="/wiki/DotGNU" title="DotGNU">DotGNU</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/List_of_CLI_languages" title="List of CLI languages">Languages</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Major languages</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li> <li><a href="/wiki/Visual_Basic_.NET" class="mw-redirect" title="Visual Basic .NET">Visual Basic</a></li> <li><a class="mw-selflink selflink">F#</a></li> <li><a href="/wiki/PowerShell" title="PowerShell">PowerShell</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Axum_(programming_language)" title="Axum (programming language)">Axum</a></li> <li><a href="/wiki/A_Sharp_(.NET)" title="A Sharp (.NET)">A#</a></li> <li><a href="/wiki/Boo_(programming_language)" title="Boo (programming language)">Boo</a></li> <li><a href="/wiki/Cobra_(programming_language)" title="Cobra (programming language)">Cobra</a></li> <li><a href="/wiki/C%2B%2B/CLI" title="C++/CLI">C++/CLI</a></li> <li><a href="/wiki/IronScheme" title="IronScheme">IronScheme</a></li> <li><a href="/wiki/IronPython" title="IronPython">IronPython</a></li> <li><a href="/wiki/IronRuby" title="IronRuby">IronRuby</a></li> <li><a href="/wiki/JScript_.NET" title="JScript .NET">JScript .NET</a></li> <li><a href="/wiki/Visual_J_Sharp" title="Visual J Sharp">J#</a></li> <li><a href="/wiki/Nemerle" title="Nemerle">Nemerle</a></li> <li><a href="/wiki/Oxygene_(programming_language)" title="Oxygene (programming language)">Oxygene</a></li> <li><a href="/wiki/Phalanger_(compiler)" title="Phalanger (compiler)">Phalanger</a></li> <li><a href="/wiki/Q_Sharp" title="Q Sharp">Q#</a></li> <li><a href="/wiki/Scala_(programming_language)" title="Scala (programming language)">Scala</a></li> <li><a href="/wiki/Microsoft_Small_Basic" title="Microsoft Small Basic">Small Basic</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Comparison</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Comparison_of_C_Sharp_and_Java" title="Comparison of C Sharp and Java">C# and Java</a></li> <li><a href="/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NET" title="Comparison of C Sharp and Visual Basic .NET">C# and Visual Basic .NET</a></li> <li><a href="/wiki/Comparison_of_Visual_Basic_and_Visual_Basic_.NET" title="Comparison of Visual Basic and Visual Basic .NET">Visual Basic and Visual Basic .NET</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby="Microsoft_free_and_open-source_software_(FOSS)290" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Microsoft_FOSS" title="Template:Microsoft FOSS"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Microsoft_FOSS" title="Template talk:Microsoft FOSS"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Microsoft_FOSS" title="Special:EditPage/Template:Microsoft FOSS"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Microsoft_free_and_open-source_software_(FOSS)290" style="font-size:114%;margin:0 4em"><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> <a href="/wiki/Free_and_open-source_software" title="Free and open-source software">free and open-source software (FOSS)</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Overview</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_and_open_source" title="Microsoft and open source">Microsoft and open source</a></li> <li><a href="/wiki/Shared_Source_Initiative" title="Shared Source Initiative">Shared Source Initiative</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Software</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Applications</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/3D_Movie_Maker" title="3D Movie Maker">3D Movie Maker</a></li> <li><a href="/wiki/Atom_(text_editor)" title="Atom (text editor)">Atom</a></li> <li><a href="/wiki/Conference_XP" title="Conference XP">Conference XP</a></li> <li><a href="/wiki/Family.Show" title="Family.Show">Family.Show</a></li> <li><a href="/wiki/File_Manager_(Windows)" class="mw-redirect" title="File Manager (Windows)">File Manager</a></li> <li><a href="/wiki/Open_Live_Writer" title="Open Live Writer">Open Live Writer</a></li> <li><a href="/wiki/Microsoft_PowerToys" title="Microsoft PowerToys">Microsoft PowerToys</a></li> <li><a href="/wiki/Windows_Terminal" title="Windows Terminal">Terminal</a></li> <li><a href="/wiki/Windows_Calculator" title="Windows Calculator">Windows Calculator</a></li> <li><a href="/wiki/Windows_Console" title="Windows Console">Windows Console</a></li> <li><a href="/wiki/Windows_Package_Manager" title="Windows Package Manager">Windows Package Manager</a></li> <li><a href="/wiki/WorldWide_Telescope" title="WorldWide Telescope">WorldWide Telescope</a></li> <li><a href="/wiki/XML_Notepad" title="XML Notepad">XML Notepad</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Video games</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Allegiance_(video_game)" title="Allegiance (video game)">Allegiance</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Programming<br />languages</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Bosque_(programming_language)" title="Bosque (programming language)">Bosque</a></li> <li><a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li> <li><a href="/wiki/Dafny" title="Dafny">Dafny</a></li> <li><a class="mw-selflink selflink">F#</a></li> <li><a href="/wiki/F*_(programming_language)" title="F* (programming language)">F*</a></li> <li><a href="/wiki/GW-BASIC" title="GW-BASIC">GW-BASIC</a></li> <li><a href="/wiki/IronPython" title="IronPython">IronPython</a></li> <li><a href="/wiki/IronRuby" title="IronRuby">IronRuby</a></li> <li><a href="/wiki/Lean_(proof_assistant)" title="Lean (proof assistant)">Lean</a></li> <li><a href="/wiki/P_(programming_language)" title="P (programming language)">P</a></li> <li><a href="/wiki/Microsoft_Power_Fx" title="Microsoft Power Fx">Power Fx</a></li> <li><a href="/wiki/PowerShell" title="PowerShell">PowerShell</a></li> <li><a href="/wiki/Project_Verona" title="Project Verona">Project Verona</a></li> <li><a href="/wiki/Q_Sharp" title="Q Sharp">Q#</a></li> <li><a href="/wiki/Microsoft_Small_Basic" title="Microsoft Small Basic">Small Basic Online</a></li> <li><a href="/wiki/TypeScript" title="TypeScript">TypeScript</a></li> <li><a href="/wiki/Visual_Basic_.NET" class="mw-redirect" title="Visual Basic .NET">Visual Basic</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Frameworks,<br />development tools</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/.NET" title=".NET">.NET</a></li> <li><a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a></li> <li><a href="/wiki/.NET_Gadgeteer" title=".NET Gadgeteer">.NET Gadgeteer</a></li> <li><a href="/wiki/.NET_MAUI" class="mw-redirect" title=".NET MAUI">.NET MAUI</a></li> <li><a href="/wiki/.NET_Micro_Framework" title=".NET Micro Framework">.NET Micro Framework</a></li> <li><a href="/wiki/AirSim" title="AirSim">AirSim</a></li> <li><a href="/wiki/ASP.NET" title="ASP.NET">ASP.NET</a></li> <li><a href="/wiki/ASP.NET_AJAX" title="ASP.NET AJAX">ASP.NET AJAX</a></li> <li><a href="/wiki/ASP.NET_Core" title="ASP.NET Core">ASP.NET Core</a></li> <li><a href="/wiki/ASP.NET_MVC" title="ASP.NET MVC">ASP.NET MVC</a></li> <li><a href="/wiki/ASP.NET_Razor" title="ASP.NET Razor">ASP.NET Razor</a></li> <li><a href="/wiki/ASP.NET_Web_Forms" title="ASP.NET Web Forms">ASP.NET Web Forms</a></li> <li><a href="/wiki/Avalonia_(software_framework)" title="Avalonia (software framework)">Avalonia</a></li> <li><a href="/wiki/Babylon.js" title="Babylon.js">Babylon.js</a></li> <li><a href="/wiki/BitFunnel" title="BitFunnel">BitFunnel</a></li> <li><a href="/wiki/Blazor" title="Blazor">Blazor</a></li> <li><a href="/wiki/C%2B%2B/WinRT" title="C++/WinRT">C++/WinRT</a></li> <li><a href="/wiki/Confidential_Consortium_Framework" title="Confidential Consortium Framework">CCF</a></li> <li><a href="/wiki/Chakra_(JavaScript_engine)" title="Chakra (JavaScript engine)">ChakraCore</a></li> <li><a href="/wiki/CLR_Profiler" title="CLR Profiler">CLR Profiler</a></li> <li><a href="/wiki/Dapr" title="Dapr">Dapr</a></li> <li><a href="/wiki/DeepSpeed" title="DeepSpeed">DeepSpeed</a></li> <li><a href="/wiki/DiskSpd" title="DiskSpd">DiskSpd</a></li> <li><a href="/wiki/Dryad_(programming)" title="Dryad (programming)">Dryad</a></li> <li><a href="/wiki/Dynamic_Language_Runtime" title="Dynamic Language Runtime">Dynamic Language Runtime</a></li> <li><a href="/wiki/EBPF_on_Windows" class="mw-redirect" title="EBPF on Windows">eBPF on Windows</a></li> <li><a href="/wiki/Electron_(software_framework)" title="Electron (software framework)">Electron</a></li> <li><a href="/wiki/Entity_Framework" title="Entity Framework">Entity Framework</a></li> <li><a href="/wiki/Fluent_Design_System" title="Fluent Design System">Fluent Design System</a></li> <li><a href="/wiki/Fluid_Framework" title="Fluid Framework">Fluid Framework</a></li> <li><a href="/wiki/Infer.NET" title="Infer.NET">Infer.NET</a></li> <li><a href="/wiki/LightGBM" title="LightGBM">LightGBM</a></li> <li><a href="/wiki/Managed_Extensibility_Framework" title="Managed Extensibility Framework">Managed Extensibility Framework</a></li> <li><a href="/wiki/Microsoft_Automatic_Graph_Layout" title="Microsoft Automatic Graph Layout">Microsoft Automatic Graph Layout</a></li> <li><a href="/wiki/Microsoft_C%2B%2B_Standard_Library" class="mw-redirect" title="Microsoft C++ Standard Library">Microsoft C++ Standard Library</a></li> <li><a href="/wiki/Microsoft_Cognitive_Toolkit" title="Microsoft Cognitive Toolkit">Microsoft Cognitive Toolkit</a></li> <li><a href="/wiki/Metro_(design_language)" title="Metro (design language)">Microsoft Design Language</a></li> <li><a href="/wiki/Microsoft_Detours" title="Microsoft Detours">Microsoft Detours</a></li> <li><a href="/wiki/Microsoft_Enterprise_Library" title="Microsoft Enterprise Library">Microsoft Enterprise Library</a></li> <li><a href="/wiki/Microsoft_SEAL" title="Microsoft SEAL">Microsoft SEAL</a></li> <li><a href="/wiki/Mimalloc" title="Mimalloc">mimalloc</a></li> <li><a href="/wiki/Mixed_Reality_Toolkit" title="Mixed Reality Toolkit">Mixed Reality Toolkit</a></li> <li><a href="/wiki/ML.NET" title="ML.NET">ML.NET</a></li> <li><a href="/wiki/Mod_mono" title="Mod mono">mod_mono</a></li> <li><a href="/wiki/Mono_(software)" title="Mono (software)">Mono</a></li> <li><a href="/wiki/MonoDevelop" title="MonoDevelop">MonoDevelop</a></li> <li><a href="/wiki/MSBuild" title="MSBuild">MSBuild</a></li> <li><a href="/wiki/MsQuic" title="MsQuic">MsQuic</a></li> <li><a href="/wiki/Neural_Network_Intelligence" title="Neural Network Intelligence">Neural Network Intelligence</a></li> <li><a href="/wiki/Npm" title="Npm">npm</a></li> <li><a href="/wiki/NuGet" title="NuGet">NuGet</a></li> <li><a href="/wiki/OneFuzz" title="OneFuzz">OneFuzz</a></li> <li><a href="/wiki/Open_Management_Infrastructure" title="Open Management Infrastructure">Open Management Infrastructure</a></li> <li><a href="/wiki/Open_Neural_Network_Exchange" title="Open Neural Network Exchange">Open Neural Network Exchange</a></li> <li><a href="/wiki/Open_Service_Mesh" title="Open Service Mesh">Open Service Mesh</a></li> <li><a href="/wiki/Open_XML_SDK" class="mw-redirect" title="Open XML SDK">Open XML SDK</a></li> <li><a href="/wiki/Orleans_(software_framework)" title="Orleans (software framework)">Orleans</a></li> <li><a href="/wiki/Playwright_(software)" title="Playwright (software)">Playwright</a></li> <li><a href="/wiki/ProcDump" title="ProcDump">ProcDump</a></li> <li><a href="/wiki/Process_Monitor" title="Process Monitor">ProcMon</a></li> <li><a href="/wiki/Python_Tools_for_Visual_Studio" title="Python Tools for Visual Studio">Python Tools for Visual Studio</a></li> <li><a href="/wiki/R_Tools_for_Visual_Studio" title="R Tools for Visual Studio">R Tools for Visual Studio</a></li> <li><a href="/wiki/RecursiveExtractor" class="mw-redirect" title="RecursiveExtractor">RecursiveExtractor</a></li> <li><a href="/wiki/Roslyn_(compiler)" title="Roslyn (compiler)">Roslyn</a></li> <li><a href="/wiki/Sandcastle_(software)" title="Sandcastle (software)">Sandcastle</a></li> <li><a href="/wiki/SignalR" title="SignalR">SignalR</a></li> <li><a href="/wiki/StyleCop" title="StyleCop">StyleCop</a></li> <li><a href="/wiki/SVNBridge" title="SVNBridge">SVNBridge</a></li> <li><a href="/wiki/T2_Temporal_Prover" title="T2 Temporal Prover">T2 Temporal Prover</a></li> <li><a href="/wiki/Text_Template_Transformation_Toolkit" title="Text Template Transformation Toolkit">Text Template Transformation Toolkit</a></li> <li><a href="/wiki/TLA%2B_Toolbox" class="mw-redirect" title="TLA+ Toolbox">TLA+ Toolbox</a></li> <li><a href="/wiki/U-Prove" title="U-Prove">U-Prove</a></li> <li><a href="/wiki/Vcpkg" title="Vcpkg">vcpkg</a></li> <li><a href="/wiki/Virtual_File_System_for_Git" title="Virtual File System for Git">Virtual File System for Git</a></li> <li><a href="/wiki/Voldemort_(distributed_data_store)" title="Voldemort (distributed data store)">Voldemort</a></li> <li><a href="/wiki/VoTT" title="VoTT">VoTT</a></li> <li><a href="/wiki/Vowpal_Wabbit" title="Vowpal Wabbit">Vowpal Wabbit</a></li> <li><a href="/wiki/Windows_App_SDK" title="Windows App SDK">Windows App SDK</a></li> <li><a href="/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">Windows Communication Foundation</a></li> <li><a href="/wiki/Windows_Driver_Frameworks" title="Windows Driver Frameworks">Windows Driver Frameworks</a> <ul><li><a href="/wiki/Kernel-Mode_Driver_Framework" title="Kernel-Mode Driver Framework">KMDF</a></li> <li><a href="/wiki/User-Mode_Driver_Framework" title="User-Mode Driver Framework">UMDF</a></li></ul></li> <li><a href="/wiki/Windows_Forms" title="Windows Forms">Windows Forms</a></li> <li><a href="/wiki/Windows_Presentation_Foundation" title="Windows Presentation Foundation">Windows Presentation Foundation</a></li> <li><a href="/wiki/Windows_Template_Library" title="Windows Template Library">Windows Template Library</a></li> <li><a href="/wiki/Windows_UI_Library" title="Windows UI Library">Windows UI Library</a></li> <li><a href="/wiki/WinJS" title="WinJS">WinJS</a></li> <li><a href="/wiki/WinObjC" class="mw-redirect" title="WinObjC">WinObjC</a></li> <li><a href="/wiki/WiX" title="WiX">WiX</a></li> <li><a href="/wiki/XDP_for_Windows" class="mw-redirect" title="XDP for Windows">XDP for Windows</a></li> <li><a href="/wiki/XSP_(software)" title="XSP (software)">XSP</a></li> <li><a href="/wiki/XUnit.net" title="XUnit.net">xUnit.net</a></li> <li><a href="/wiki/Z3_Theorem_Prover" title="Z3 Theorem Prover">Z3 Theorem Prover</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Operating systems</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/MS-DOS" title="MS-DOS">MS-DOS</a> (v1.25, v2.0 & v4.0)</li> <li><a href="/wiki/Barrelfish_(operating_system)" title="Barrelfish (operating system)">Barrelfish</a></li> <li><a href="/wiki/SONiC_(operating_system)" title="SONiC (operating system)">SONiC</a></li> <li><a href="/wiki/Azure_Linux" title="Azure Linux">Azure Linux</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ChronoZoom" title="ChronoZoom">ChronoZoom</a></li> <li><a href="/wiki/Extensible_Storage_Engine" title="Extensible Storage Engine">Extensible Storage Engine</a></li> <li><a href="/wiki/FlexWiki" class="mw-redirect" title="FlexWiki">FlexWiki</a></li> <li><a href="/wiki/FourQ" title="FourQ">FourQ</a></li> <li><a href="/wiki/Gollum_(software)" title="Gollum (software)">Gollum</a></li> <li><a href="/wiki/Project_Mu" class="mw-redirect" title="Project Mu">Project Mu</a></li> <li><a href="/wiki/ReactiveX" title="ReactiveX">ReactiveX</a></li> <li><a href="/wiki/SILK" title="SILK">SILK</a></li> <li><a href="/wiki/TLAPS" class="mw-redirect" title="TLAPS">TLAPS</a></li> <li><a href="/wiki/TPM_2.0_Reference_Implementation" class="mw-redirect" title="TPM 2.0 Reference Implementation">TPM 2.0 Reference Implementation</a></li> <li><a href="/wiki/WikiBhasha" title="WikiBhasha">WikiBhasha</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Open-source_license" title="Open-source license">Licenses</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Public_License" class="mw-redirect" title="Microsoft Public License">Microsoft Public License</a></li> <li><a href="/wiki/Microsoft_Reciprocal_License" class="mw-redirect" title="Microsoft Reciprocal License">Microsoft Reciprocal License</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Forge_(software)" title="Forge (software)">Forges</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/CodePlex" title="CodePlex">CodePlex</a></li> <li><a href="/wiki/GitHub" title="GitHub">GitHub</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/.NET_Foundation" title=".NET Foundation">.NET Foundation</a></li> <li><a href="/wiki/F_Sharp_Software_Foundation" title="F Sharp Software Foundation">F# Software Foundation</a></li> <li><a href="/wiki/Microsoft_Open_Specification_Promise" title="Microsoft Open Specification Promise">Microsoft Open Specification Promise</a></li> <li><a href="/wiki/Open_Letter_to_Hobbyists" class="mw-redirect" title="Open Letter to Hobbyists">Open Letter to Hobbyists</a></li> <li><a href="/wiki/Open_Source_Security_Foundation" title="Open Source Security Foundation">Open Source Security Foundation</a></li> <li><a href="/wiki/Outercurve_Foundation" title="Outercurve Foundation">Outercurve Foundation</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/Category:Microsoft_free_software" title="Category:Microsoft free software">Category</a></div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby="Microsoft_Research_(MSR)216" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Microsoft_Research" title="Template:Microsoft Research"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Microsoft_Research" title="Template talk:Microsoft Research"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Microsoft_Research" title="Special:EditPage/Template:Microsoft Research"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Microsoft_Research_(MSR)216" style="font-size:114%;margin:0 4em"><a href="/wiki/Microsoft_Research" title="Microsoft Research">Microsoft Research (MSR)</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Main<br />projects</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Languages, compilers</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Bartok_(compiler)" title="Bartok (compiler)">Bartok</a></li> <li><a href="/wiki/Bosque_(programming_language)" title="Bosque (programming language)">Bosque</a></li> <li><a href="/wiki/C%CF%89" class="mw-redirect" title="Cω">Cω</a></li> <li><a href="/wiki/F*_(programming_language)" title="F* (programming language)">F*</a></li> <li><a href="/wiki/Lean_(proof_assistant)" title="Lean (proof assistant)">Lean</a></li> <li><a href="/wiki/P_(programming_language)" title="P (programming language)">P</a></li> <li><a href="/wiki/Project_Verona" title="Project Verona">Project Verona</a></li> <li><a href="/wiki/Microsoft_Phoenix" title="Microsoft Phoenix">Phoenix</a></li> <li><a href="/wiki/Polyphonic_C_Sharp" class="mw-redirect" title="Polyphonic C Sharp">Polyphonic C#</a></li> <li><a href="/wiki/SecPAL" title="SecPAL">SecPAL</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Distributed_computing" title="Distributed computing">Distributed</a>–<a href="/wiki/Grid_computing" title="Grid computing">grid computing</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/BitVault" title="BitVault">BitVault</a></li> <li><a href="/wiki/Confidential_Consortium_Framework" title="Confidential Consortium Framework">Confidential Consortium Framework</a></li> <li><a href="/wiki/DeepSpeed" title="DeepSpeed">DeepSpeed</a></li> <li><a href="/wiki/Orleans_(software_framework)" title="Orleans (software framework)">Orleans</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Internet" title="Internet">Internet</a>, <a href="/wiki/Computer_network" title="Computer network">networking</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li>AjaxView</li> <li><a href="/wiki/Avalanche_(P2P)" title="Avalanche (P2P)">Avalanche</a></li> <li><a href="/wiki/Conference_XP" title="Conference XP">Conference XP</a></li> <li><a href="/wiki/Gazelle_(web_browser)" title="Gazelle (web browser)">Gazelle</a></li> <li><a href="/wiki/HoneyMonkey" title="HoneyMonkey">HoneyMonkey</a></li> <li><a href="/wiki/Penny_Black_(research_project)" title="Penny Black (research project)">Penny Black</a></li> <li><a href="/wiki/Wallop" title="Wallop">Wallop</a></li> <li><a href="/wiki/WikiBhasha" title="WikiBhasha">WikiBhasha</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other projects</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Automatic_Graph_Layout" title="Microsoft Automatic Graph Layout">Automatic Graph Layout</a></li> <li><a href="/wiki/Microsoft_Cognitive_Toolkit" title="Microsoft Cognitive Toolkit">Cognitive Toolkit</a></li> <li><a href="/wiki/Project_Digits" title="Project Digits">Digits</a></li> <li><a href="/wiki/Microsoft_Holoportation" title="Microsoft Holoportation">Holoportation</a></li> <li><a href="/wiki/IllumiRoom" title="IllumiRoom">IllumiRoom</a></li> <li><a href="/wiki/Image_Composite_Editor" title="Image Composite Editor">Image Composite Editor</a></li> <li><a href="/wiki/Infer.NET" title="Infer.NET">Infer.NET</a></li> <li><a href="/wiki/LightGBM" title="LightGBM">LightGBM</a></li> <li><a href="/wiki/LiveStation" title="LiveStation">LiveStation</a></li> <li><a href="/wiki/MyLifeBits" title="MyLifeBits">MyLifeBits</a></li> <li><a href="/wiki/Neural_Network_Intelligence" title="Neural Network Intelligence">Neural Network Intelligence</a></li> <li><a href="/wiki/NodeXL" title="NodeXL">NodeXL</a></li> <li><a href="/wiki/OneFuzz" title="OneFuzz">OneFuzz</a></li> <li><a href="/wiki/PhotoDNA" title="PhotoDNA">PhotoDNA</a></li> <li><a href="/wiki/Microsoft_SEAL" title="Microsoft SEAL">SEAL</a></li> <li><a href="/wiki/SLAM_project" title="SLAM project">SLAM</a></li> <li><a href="/wiki/T2_Temporal_Prover" title="T2 Temporal Prover">T2 Temporal Prover</a></li> <li><a href="/wiki/WorldWide_Telescope" title="WorldWide Telescope">WorldWide Telescope</a></li> <li><a href="/wiki/Z3_Theorem_Prover" title="Z3 Theorem Prover">Z3 Theorem Prover</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Operating_system" title="Operating system">Operating systems</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Barrelfish_(operating_system)" title="Barrelfish (operating system)">Barrelfish</a></li> <li><a href="/wiki/HomeOS" title="HomeOS">HomeOS</a></li> <li><a href="/wiki/Midori_(operating_system)" title="Midori (operating system)">Midori</a></li> <li><a href="/wiki/Singularity_(operating_system)" title="Singularity (operating system)">Singularity</a></li> <li><a href="/wiki/Verve_(operating_system)" title="Verve (operating system)">Verve</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/API" title="API">APIs</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Accelerator_(library)" title="Accelerator (library)">Accelerator</a></li> <li><a href="/wiki/Dryad_(programming)" title="Dryad (programming)">Dryad</a></li> <li><a href="/wiki/Joins_(concurrency_library)" title="Joins (concurrency library)">Joins</a></li> <li><a href="/wiki/Mimalloc" title="Mimalloc">mimalloc</a></li> <li><a href="/wiki/SXM_(transactional_memory)" title="SXM (transactional memory)">SXM</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Launched as products</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li> <li><a href="/wiki/Microsoft_Comic_Chat" title="Microsoft Comic Chat">Comic Chat</a></li> <li><a href="/wiki/Microsoft_Detours" title="Microsoft Detours">Detours</a></li> <li><a class="mw-selflink selflink">F#</a></li> <li><a href="/wiki/Windows_Desktop_Gadgets" title="Windows Desktop Gadgets">Sideshow</a></li> <li><a href="/wiki/Microsoft_PixelSense" title="Microsoft PixelSense">PixelSense</a> (<a href="/wiki/TouchLight" title="TouchLight">TouchLight</a>)</li> <li><a href="/wiki/Microsoft_SenseCam" title="Microsoft SenseCam">SenseCam</a></li> <li><a href="/wiki/ClearType" title="ClearType">ClearType</a></li> <li><a href="/wiki/Group_Shot" title="Group Shot">Group Shot</a></li> <li><a href="/wiki/Allegiance_(video_game)" title="Allegiance (video game)">Allegiance</a></li> <li><a href="/wiki/TrueSkill" title="TrueSkill">TrueSkill</a></li> <li><a href="/wiki/Microsoft_Songsmith" class="mw-redirect" title="Microsoft Songsmith">Songsmith</a></li> <li><a href="/wiki/Xbox" title="Xbox">Xbox</a> <ul><li><a href="/wiki/Kinect" title="Kinect">Kinect</a></li></ul></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">MSR Labs<br />applied<br />research</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Microsoft_Live_Labs" title="Microsoft Live Labs">Live Labs</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Current</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Live_Labs_Pivot" title="Microsoft Live Labs Pivot">Pivot</a></li> <li><a href="/wiki/Seadragon_Software" title="Seadragon Software">Seadragon</a> <ul><li><a href="/wiki/Deep_Zoom" title="Deep Zoom">Deep Zoom</a></li></ul></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Discontinued</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Live_Labs_Deepfish" title="Microsoft Live Labs Deepfish">Deepfish</a></li> <li><a href="/wiki/Microsoft_Live_Labs_Listas" title="Microsoft Live Labs Listas">Listas</a></li> <li><a href="/wiki/Live_Clipboard" title="Live Clipboard">Live Clipboard</a></li> <li><a href="/wiki/Photosynth" title="Photosynth">Photosynth</a></li> <li><a href="/wiki/Microsoft_Live_Labs_Volta" title="Microsoft Live Labs Volta">Volta</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Microsoft_FUSE_Labs" title="Microsoft FUSE Labs">FUSE Labs</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Docs.com" title="Docs.com">Docs.com</a></li> <li><a href="/wiki/Kodu_Game_Lab" title="Kodu Game Lab">Kodu</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other labs</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Academic_Search" title="Microsoft Academic Search">Academic Search</a></li> <li><a href="/wiki/Microsoft_adCenter_Labs" title="Microsoft adCenter Labs">adCenter Labs</a></li> <li><a href="/wiki/Microsoft_Office" title="Microsoft Office">Office Labs</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/Category:Microsoft_Research" title="Category:Microsoft Research">Category</a></div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.canary‐55fd9d4764‐l699j Cached time: 20250214041112 Cache expiry: 1280941 Reduced expiry: true Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 1.231 seconds Real time usage: 1.476 seconds Preprocessor visited node count: 6232/1000000 Post‐expand include size: 269712/2097152 bytes Template argument size: 7107/2097152 bytes Highest expansion depth: 21/100 Expensive parser function count: 41/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 369815/5000000 bytes Lua time usage: 0.763/10.000 seconds Lua memory usage: 10859549/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 1217.633 1 -total 30.29% 368.787 1 Template:Reflist 28.42% 346.041 2 Template:Infobox 25.54% 310.923 1 Template:Infobox_programming_language 20.72% 252.340 69 Template:Cite_web 19.67% 239.563 1 Template:Infobox_software/simple 16.62% 202.312 2 Template:Wikidata 9.40% 114.505 15 Template:Navbox 7.33% 89.265 1 Template:Excerpt 7.20% 87.660 1 Template:Short_description --> <!-- Saved in parser cache with key enwiki:pcache:239964:|#|:idhash:canonical and timestamp 20250214041112 and revision id 1269320157. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?useformat=desktop&type=1x1&usesul3=0" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=F_Sharp_(programming_language)&oldid=1269320157">https://en.wikipedia.org/w/index.php?title=F_Sharp_(programming_language)&oldid=1269320157</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:.NET_programming_languages" title="Category:.NET programming languages">.NET programming languages</a></li><li><a href="/wiki/Category:Cross-platform_free_software" title="Category:Cross-platform free software">Cross-platform free software</a></li><li><a href="/wiki/Category:High-level_programming_languages" title="Category:High-level programming languages">High-level programming languages</a></li><li><a href="/wiki/Category:Functional_languages" title="Category:Functional languages">Functional languages</a></li><li><a href="/wiki/Category:Microsoft_free_software" title="Category:Microsoft free software">Microsoft free software</a></li><li><a href="/wiki/Category:Microsoft_programming_languages" title="Category:Microsoft programming languages">Microsoft programming languages</a></li><li><a href="/wiki/Category:Microsoft_Research" title="Category:Microsoft Research">Microsoft Research</a></li><li><a href="/wiki/Category:ML_programming_language_family" title="Category:ML programming language family">ML programming language family</a></li><li><a href="/wiki/Category:OCaml_programming_language_family" title="Category:OCaml programming language family">OCaml programming language family</a></li><li><a href="/wiki/Category:Pattern_matching_programming_languages" title="Category:Pattern matching programming languages">Pattern matching programming languages</a></li><li><a href="/wiki/Category:Programming_languages_created_in_2005" title="Category:Programming languages created in 2005">Programming languages created in 2005</a></li><li><a href="/wiki/Category:Programming_languages_supporting_units_of_measure" title="Category:Programming languages supporting units of measure">Programming languages supporting units of measure</a></li><li><a href="/wiki/Category:Software_using_the_Apache_license" title="Category:Software using the Apache license">Software using the Apache license</a></li><li><a href="/wiki/Category:Software_using_the_MIT_license" title="Category:Software using the MIT license">Software using the MIT license</a></li><li><a href="/wiki/Category:Statically_typed_programming_languages" title="Category:Statically typed programming languages">Statically typed programming languages</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:CS1_errors:_missing_title" title="Category:CS1 errors: missing title">CS1 errors: missing title</a></li><li><a href="/wiki/Category:CS1_errors:_bare_URL" title="Category:CS1 errors: bare URL">CS1 errors: bare URL</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_matches_Wikidata" title="Category:Short description matches Wikidata">Short description matches Wikidata</a></li><li><a href="/wiki/Category:Restricted_titles_(non-leading_number_sign)" title="Category:Restricted titles (non-leading number sign)">Restricted titles (non-leading number sign)</a></li><li><a href="/wiki/Category:All_articles_with_specifically_marked_weasel-worded_phrases" title="Category:All articles with specifically marked weasel-worded phrases">All articles with specifically marked weasel-worded phrases</a></li><li><a href="/wiki/Category:Articles_with_specifically_marked_weasel-worded_phrases_from_May_2022" title="Category:Articles with specifically marked weasel-worded phrases from May 2022">Articles with specifically marked weasel-worded phrases from May 2022</a></li><li><a href="/wiki/Category:Articles_with_excerpts" title="Category:Articles with excerpts">Articles with excerpts</a></li><li><a href="/wiki/Category:Webarchive_template_wayback_links" title="Category:Webarchive template wayback links">Webarchive template wayback links</a></li><li><a href="/wiki/Category:Articles_with_example_OCaml_code" title="Category:Articles with example OCaml code">Articles with example OCaml code</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 14 January 2025, at 03:14<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=F_Sharp_(programming_language)&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" lang="en" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/w/resources/assets/poweredby_mediawiki.svg" width="88" height="31"><img src="/w/resources/assets/mediawiki_compact.svg" alt="Powered by MediaWiki" width="25" height="25" loading="lazy"></picture></a></li> </ul> </footer> </div> </div> </div> <div class="vector-header-container vector-sticky-header-container"> <div id="vector-sticky-header" class="vector-sticky-header"> <div class="vector-sticky-header-start"> <div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"> <button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" tabindex="-1" data-event-name="ui.vector-sticky-search-form.icon"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </button> </div> <div role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box"> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail"> <form action="/w/index.php" id="vector-sticky-search-form" class="cdx-search-input cdx-search-input--has-end-button"> <div class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia"> <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <div class="vector-sticky-header-context-bar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc vector-button-flush-left" > <input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-sticky-header-toc-label" for="vector-sticky-header-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-sticky-header-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div class="vector-sticky-header-context-bar-primary" aria-hidden="true" ><span class="mw-page-title-main">F Sharp (programming language)</span></div> </div> </div> <div class="vector-sticky-header-end" aria-hidden="true"> <div class="vector-sticky-header-icons"> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-talk-sticky-header" tabindex="-1" data-event-name="talk-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-subject-sticky-header" tabindex="-1" data-event-name="subject-sticky-header"><span class="vector-icon mw-ui-icon-article mw-ui-icon-wikimedia-article"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-history-sticky-header" tabindex="-1" data-event-name="history-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-history mw-ui-icon-wikimedia-wikimedia-history"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only mw-watchlink" id="ca-watchstar-sticky-header" tabindex="-1" data-event-name="watch-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-star mw-ui-icon-wikimedia-wikimedia-star"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-edit-sticky-header" tabindex="-1" data-event-name="wikitext-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-wikiText mw-ui-icon-wikimedia-wikimedia-wikiText"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-ve-edit-sticky-header" tabindex="-1" data-event-name="ve-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-edit mw-ui-icon-wikimedia-wikimedia-edit"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-viewsource-sticky-header" tabindex="-1" data-event-name="ve-edit-protected-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-editLock mw-ui-icon-wikimedia-wikimedia-editLock"></span> <span></span> </a> </div> <div class="vector-sticky-header-buttons"> <button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" tabindex="-1" data-event-name="ui.dropdown-p-lang-btn-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>32 languages</span> </button> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive" id="ca-addsection-sticky-header" tabindex="-1" data-event-name="addsection-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbleAdd-progressive mw-ui-icon-wikimedia-speechBubbleAdd-progressive"></span> <span>Add topic</span> </a> </div> <div class="vector-sticky-header-icon-end"> <div class="vector-user-links"> </div> </div> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-b766959bd-wtpvl","wgBackendResponseTime":155,"wgPageParseReport":{"limitreport":{"cputime":"1.231","walltime":"1.476","ppvisitednodes":{"value":6232,"limit":1000000},"postexpandincludesize":{"value":269712,"limit":2097152},"templateargumentsize":{"value":7107,"limit":2097152},"expansiondepth":{"value":21,"limit":100},"expensivefunctioncount":{"value":41,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":369815,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 1217.633 1 -total"," 30.29% 368.787 1 Template:Reflist"," 28.42% 346.041 2 Template:Infobox"," 25.54% 310.923 1 Template:Infobox_programming_language"," 20.72% 252.340 69 Template:Cite_web"," 19.67% 239.563 1 Template:Infobox_software/simple"," 16.62% 202.312 2 Template:Wikidata"," 9.40% 114.505 15 Template:Navbox"," 7.33% 89.265 1 Template:Excerpt"," 7.20% 87.660 1 Template:Short_description"]},"scribunto":{"limitreport-timeusage":{"value":"0.763","limit":"10.000"},"limitreport-memusage":{"value":10859549,"limit":52428800},"limitreport-logs":"anchor_id_list = table#1 {\n [\"CITEREFAlexander_Kurakin2019\"] = 1,\n [\"CITEREFAstborg2013\"] = 1,\n [\"CITEREFEdwards2008\"] = 1,\n [\"CITEREFHansenRischel2013\"] = 1,\n [\"CITEREFHarrop2010\"] = 1,\n [\"CITEREFIntellifactory\"] = 1,\n [\"CITEREFLundin2015\"] = 1,\n [\"CITEREFMcNamara\"] = 2,\n [\"CITEREFPetricek2009\"] = 1,\n [\"CITEREFPickering2007\"] = 1,\n [\"CITEREFSmith2009\"] = 1,\n [\"CITEREFSyme\"] = 2,\n [\"CITEREFSyme2006\"] = 1,\n [\"CITEREFSymeGraniczCisternino2007\"] = 1,\n [\"CITEREFThe_F#_Software_Foundation\"] = 4,\n [\"CITEREFTrelford2007\"] = 1,\n [\"CITEREFZander\"] = 1,\n [\"CITEREFkexugit2011\"] = 1,\n}\ntemplate_list = table#1 {\n [\".NET Framework\"] = 1,\n [\"Citation\"] = 8,\n [\"Cite book\"] = 1,\n [\"Cite news\"] = 3,\n [\"Cite web\"] = 67,\n [\"Code\"] = 13,\n [\"Common Language Infrastructure\"] = 1,\n [\"Correct title\"] = 1,\n [\"Distinguish\"] = 1,\n [\"Excerpt\"] = 1,\n [\"Harvcoltxt\"] = 1,\n [\"Infobox programming language\"] = 1,\n [\"ML programming\"] = 1,\n [\"Microsoft FOSS\"] = 1,\n [\"Microsoft Research\"] = 1,\n [\"Official website\"] = 1,\n [\"Portal\"] = 1,\n [\"Reflist\"] = 1,\n [\"Short description\"] = 1,\n [\"Start date and age\"] = 2,\n [\"URL\"] = 2,\n [\"Visible anchor\"] = 2,\n [\"Webarchive\"] = 2,\n [\"Whose\"] = 1,\n [\"Wikibooks\"] = 1,\n [\"Wikidata\"] = 2,\n}\narticle_whitelist = table#1 {\n}\nciteref_patterns = table#1 {\n}\n"},"cachereport":{"origin":"mw-web.codfw.canary-55fd9d4764-l699j","timestamp":"20250214041112","ttl":1280941,"transientcontent":true}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"F Sharp (programming language)","url":"https:\/\/en.wikipedia.org\/wiki\/F_Sharp_(programming_language)","sameAs":"http:\/\/www.wikidata.org\/entity\/Q648619","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q648619","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2003-06-04T12:56:06Z","dateModified":"2025-01-14T03:14:31Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/6\/66\/F_Sharp_logo.svg","headline":"Microsoft programming language"}</script> </body> </html>