- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
F_Sharp简明教程
F#简明教程
本文转载来自:
1. F#与函数式编程概述
F#是微软.NET平台上一门新兴的函数式编程语言,通过函数式语言,开发人员可以轻松应对多核多并发时代的并行计算和分布问题。本文是F#简明教程的第一章,带您走进F#和函数式编程。
F#是微软.NET开发平台的一门编程语言,其最大的特点是对函数式编程(FP,Functional Programming)的引入;F#对面向对象(OOP)编程的支持也很出色,使用F#语言,开发人员可以自由选择函数式编程或面向对象编程来实现他们的项目。此外,F#还可以与.NET平台上C#、VB等其他编程语言紧密结合。
CPU多核心化和云计算的背景下,函数式编程可以很好的解决多并发运算的问题(在处理并发问题方面,面向对象编程存在一定程度的固有缺陷,比如类和实例化过程中产生的一些副作用,详细请参考51CTO.com对另一门函数式编程语言Erlang的视频访谈《因并发而生 因云计算而热:Erlang专家访谈实录》)。微软看到了这个趋势,试图通过专门为函数式编程打造的F#语言提升.NET平台在并发处理、多核多并发方面的能力,进一步提升开发人员的生产力和代码运行效率。
在2009年的TechED上,51CTO.com就F#和函数式编程的问题视频采访了微软MVP赵颉老师,我们可以采访视频了解F#和函数式编程最近的发展,详细请参考《TechED 09视频专访:F#与函数式编程语言》。
F#小背景:看似年轻的F#已经有近10年的历史。最初由微软研究院的Don Syme于2002年立项研发;F#在2005年推出第一个版本,2007年底,微软宣布F#进入产品化阶段。在不断的改进中,F#从C#、Linq和Haskell中吸收了很多优点。
1.1 F#编程起步
F#可以运行在.NET Framework 2.0版本以上的平台。如果你的Visual Studio之前没有安装F#,可以从微软F# Developer Center获得(/en-us/fsharp/default.aspx)。
不能免俗,让我们来看看F#的Hello World代码:
1 #light
2 System.Console.WriteLine(“This is one hello”)
3 printfn “This is another hello”
将代码保存为hello.fs文件后,我们需要在命令行中通过fsc.exe编译生成一个.NET程序集。在命令行中的编译代码如下:
fsc hello.fs
通过上面的代码,我们就得到了常见的可执行文件(.exe文件),这就是我们F#的起步——hello.exe。
F#小提示:F#是.NET平台上的一个编译型语言,但仍然可以像脚本语言一样运行。可以使用Visual Studio或fsi.exe(在F#安装目录下的bin目录)进行F#脚本的执行。
1.2代码解读
让我们来仔细看看hello.fs文件里的代码
◆ 程序首先以“#light”开始,在以后的F#之路上,我们会经常看到“#light”;大多数时候,“#light”总是出现在F#程序的开始位置,这是F#轻量级语法的标识;在最新的F#版本中,#light将作为默认选项。
◆ “System.Console.WriteLine”调用一个.NET基础类(熟悉C#或VB.NET的朋友会相当熟悉)用来初始化一些必要的功能。
◆ “printfn”是F#的一个常用函数,他会将双引号中的参数输出到控制台上显示。
跟其他程序的Hello World一样,这段F#代码简单易懂,看着跟其他语言写就的Hello World还有些相似;但作为函数式编程语言,F#的语法和编程中的思路却有很大的不同。在下周的章节中,我们将深入F#编程,讲解F#的类型系统及编译机制。
2. F#类型系统和类型推断机制
F#是一种类型推断语言,它们的类型在编译过程中被推断和确定;这与Java或C#中的泛型基本相似,本节教程我们将介绍F#的类型系统和类型推断机制,这是理解F#的基础。
在上一篇教程《F#与函数式编程概述》中我们了解到F#和函数式编程的一些特点,更多关于F#语言和函数式编程的介绍可以参考51CTO之前对微软MVP赵颉老师的专访《TechED 09视频专访:F#与函数式编程语言》。本节教程我们将学习到F#的一些基础原理,在开始之前,让我们先温习一下我们的Hello World代码:
1 #light
2 System.Console.WriteLine(“This is one hello”)
3 printfn “This is another hello”
F#是函数式和面向对象的混合体。它有时候会看起来与C#或Visual Basic惊人的相似,但
您可能关注的文档
- 化学4.2《化学电源》测试(新人教版选修4).doc
- EPP填料在BAF中的试验总结.doc
- Evaluation演讲点评比赛-裁判简明参考_v1.doc
- 化学4.1氯气教案(大纲版高一上).doc
- EVA价值管理时代的来临.doc
- 化学《有机化学基础》测试试题(新人教版选修5).doc
- 化学《有机物的结构》教案(苏教版选修5).doc
- 化学《烃》测试题2.doc
- 第2章 道德与社会责任.doc
- 化学上册学案--第二单元2.doc
- 2025年生物基材料在VR设备外壳热传导测试报告.docx
- 2025年生物质能与煤炭耦合燃烧技术在生物质能源利用中的节能减排效果报告.docx
- 2025年预制菜冷链物流基础设施报告.docx
- 2025年跨境电商数字货币支付跨境场景报告.docx
- 2025年低空经济「银发经济」无人机医疗救援技术应用报告.docx
- 2025年无人机应急救援行业市场分析报告:低空经济的新角色.docx
- 2025年生物基塑料在快递封装领域替代材料分析报告.docx
- 新能源企业产能布局策略规划与2025年区域选址可行性研究.docx
- 2025年工业互联网标识解析二级节点互操作性分析报告.docx
- 2025年生物制造技术在食品健康保鲜中的创新应用报告.docx
原创力文档


文档评论(0)