Real World Functional Programming: With Examples in F# and C#<\/em>, which Syme terms \u201cone of the best books on applied functional programming.\u201d<\/p>\nSyme also emphasizes the importance of Microsoft Research itself in the development of the language.<\/p>\n
\u201cMicrosoft Research has given F# a long-term home,\u201d he says, \u201cwhich has allowed the language to mature in a context of intellectual curiosity and investigation. It’s also given us access to many of the best researchers in the world. The partnership we’ve developed with the Microsoft Developer Division is something we very much look forward to continuing.\u201d<\/p>\n
Problem Solving<\/h2>\n
Along the way, the F# effort encountered and surpassed a series of hurdles.<\/p>\n
\u201cCombining object-oriented and functional programming poses several challenges,\u201d Syme says, \u201cfrom surface syntax to type inference to design techniques. I\u2019m very proud of how we\u2019ve addressed those problems. F# also has a feature called \u2018computation expressions,\u2019 and we\u2019re particularly happy with the unity we\u2019ve achieved there.\u201d<\/p>\n
Now, with F# having been added to the Visual Studio tool kit, it\u2019s time for the team to turn to new challenges, right? Not so fast, Syme cautions.<\/p>\n
\u201cA recurring theme of F# is its focus on accessing information from outside the language,\u201d he states. \u201cLooking ahead, we want to continue to connect F# to rich data sources and external sources of functionality. There is a tendency in the industry to think that strong typing and navigability are necessarily lost around the fringes of an application. In many ways, C# and F# already dispel this myth. However, we have ideas about how to make external access even simpler and more intuitive, continuing to break new ground for typed languages.\u201d<\/p>\n
Meanwhile, on the product side, it will be interesting, Hoban says, to watch how F# is embraced now that it has received official release as part of Visual Studio 2010.<\/p>\n
\u201cWe\u2019ve seen a number of interesting uses across a broad range of software applications,\u201d he says. \u201cWe\u2019re also seeing many examples of F# being used to build components of larger .NET applications. This allows projects to seamlessly integrate F# in areas where it provides significant value without needing to change anything else in their applications.\u201d<\/p>\n
For Syme, staunch advocate of functional programming and making software development enjoyable, the prospect of people enjoying their work with F# is the ultimate reward.<\/p>\n
\u201cThat,\u201d he says, \u201cmakes me happy.\u201d<\/p>\n","protected":false},"excerpt":{"rendered":"
By Rob Knies, Managing Editor, Microsoft Research You would be forgiven if you thought the \u201cF\u201d in F#\u2014which made its debut as part of Visual Studio 2010 on April 12\u2014stands for \u201cfunctional.\u201d After all, F#\u2014pronounced \u201cF sharp\u201d\u2014is a functional programming language for the .NET Framework that combines the succinct, expressive, and compositional style of functional […]<\/p>\n","protected":false},"author":39507,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","footnotes":""},"categories":[194488],"tags":[194493,195378,193543,214589,214583,214586,187067],"research-area":[13560],"msr-region":[],"msr-event-type":[],"msr-locale":[268875],"msr-post-option":[],"msr-impact-theme":[],"msr-promo-type":[],"msr-podcast-series":[],"class_list":["post-306191","post","type-post","status-publish","format-standard","hentry","category-program-languages-and-software-engineering","tag-net-framework","tag-don-syme","tag-f","tag-functional-programming-language","tag-microsoft-developer-division","tag-visual-f","tag-visual-studio","msr-research-area-programming-languages-software-engineering","msr-locale-en_us"],"msr_event_details":{"start":"","end":"","location":""},"podcast_url":"","podcast_episode":"","msr_research_lab":[199561],"msr_impact_theme":[],"related-publications":[],"related-downloads":[],"related-videos":[],"related-academic-programs":[],"related-groups":[],"related-projects":[171037,171032],"related-events":[],"related-researchers":[],"msr_type":"Post","byline":"","formattedDate":"April 13, 2010","formattedExcerpt":"By Rob Knies, Managing Editor, Microsoft Research You would be forgiven if you thought the \u201cF\u201d in F#\u2014which made its debut as part of Visual Studio 2010 on April 12\u2014stands for \u201cfunctional.\u201d After all, F#\u2014pronounced \u201cF sharp\u201d\u2014is a functional programming language for the .NET Framework…","locale":{"slug":"en_us","name":"English","native":"","english":"English"},"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/306191"}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/users\/39507"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/comments?post=306191"}],"version-history":[{"count":4,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/306191\/revisions"}],"predecessor-version":[{"id":306215,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/306191\/revisions\/306215"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=306191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/categories?post=306191"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/tags?post=306191"},{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=306191"},{"taxonomy":"msr-region","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-region?post=306191"},{"taxonomy":"msr-event-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-event-type?post=306191"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=306191"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=306191"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=306191"},{"taxonomy":"msr-promo-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-promo-type?post=306191"},{"taxonomy":"msr-podcast-series","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-podcast-series?post=306191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}