说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

F#是什么语言

HTML文档下载 WORD文档下载 PDF文档下载
F#是由微软发展的为微软.NET语言提供运行环境的程序设计语言。它是基于Ocaml的,而Ocaml是基于ML函数程序设计语言的。 这是一个用于显示.NET在不同编程语言间互通的程序设计。

 

F#是一个基于.NET框架的多模式编程语言、是一种.NET平台上的函数式编程语言、更是一个高效的.NET程序语言。就像C#和VB.NET,F#可以利用.NET的核心类库,如WPF,WCF,VSTO等等,通过F#您甚至可以使用XNA编写XBox游戏。仅仅如此并不意味着您应该去学习它。那为何要使用F#呢?作为一种函数式编程语言,F#使得某些领域的编程要比命令式编程(如使用C#)更为容易。并行编程(Parallel Programming)和面向语言编程(Language-Oriented Programming)是其中的两个领域。
F#语言交互式设计窗口
如果您曾经编写过.NET应用程序,并感觉自己在努力使用手头的语言表达自己的想法,也许F#就是您在寻找的。F#主要是由Microsoft Research 和 Visual Studio 小组协作开发的,并采纳了F#社区和一些主要使用者的意见。F#为Visual Studio 2010带来了很大的改观。因为替代了局部程序中的元组使工作变的简单了。在异步编程和强类型对于浮点编码方面也提供的不错的解决方式。可以说F# 是Visual Studio 2010中结合了众多优点的编程语言。
在F#中函数可以被视为值,可以传递给其他函数,你可以方便地编写高阶函数;F#支持组合式编程,你可以通过使用简单的操作符语法来组合函数;F#提供了支持函数式编程风格的类型,如针对简单数据集合的元组和针对结构化符号数据的discriminated unions;F#提供了许多不可变的数据结构,如不可变的列表、映射、集合、序列和记录等;F#支持异步编程,并且提供了使这种编程比以往更容易的结构;Visual F#中还包括了一个F#解释器,F#互动器(fsi.exe),它能够以交互方式编译并执行代码;F#支持延迟计算,这可以使您直到需要结果时才进行计算;F#支持面向对象语言特征,除了让您使用F#语言开发.NET框架API外,这种特征可以使F#程序能够充分地访问.NET框架。当然除此以外,F#还支持如面向对象语言特征,支持命令式编程结构,支持数学计算等特性。在VS2010中F#除了特征广泛外,它的特点还包括比如说简单简洁的句法、并行和异步的编程。
我们先来看其简单简洁的句法:
  F#像C#一样,是一种强制型的语言。但是我也可以使用类似在Python中那样的方式。既轻量级的,灵活的,数学类的编程方式。
  let data = (1,2,3)
  let rotations (x, y, z) =
  [ (x, y, z);
  (z, x, y);
  (y, z, x) ]
  let derivative f x =
  let p1 = f (x - 0.05)
  let p2 = f (x + 0.05)
  (p2 - p1) / 0.1
  let f x = 2.0*x*x - 6.0*x + 3.0
  let df = derivative f
  System.Console.WriteLine("The derivative of f at x=4 is {0}", df 4.0)
  其运行结果为:“The derivative of f at x=4 is 10”。
  
  在并行和异步编程上,.NET Framework 4 和Visual Studio 2010中,包含了一个关于并行程序开发的庞大文档和工具库。F#提供了一种强健的编程模式和灵活优秀的功能,使这些显现的更为直观。最为重要的是,我们可以在过去习惯了的线性编程模式下进行异步编程。
  let http url =
  async { let req = WebRequest.Create(Uri url)
  let! resp = req.AsyncGetResponse()
  let stream = resp.GetResponseStream()
  let reader = new StreamReader(stream)
  let! contents = reader.AsyncReadToEnd()
  return contents }
  let sites = ["http://bing.com"; "http://microsoft.com";"http://msdn.com"; "http://msnbc.com"]
  let htmlOfSites =
  Async.Parallel [for site in sites -> http(site)]
  |> Async.RunSynchronously
  以上就是Visual Studio 2010中F#语言简单介绍,在使用过程中肯定会有更多的体验。

 

F#是一个基于.NET框架的多模式编程语言、是一种.NET平台上的函数式编程语言、更是一个高效的.NET程序语言。就像C#和VB.NET,F#可以利用.NET的核心类库,如WPF,WCF,VSTO等等,通过F#您甚至可以使用XNA编写XBox游戏。仅仅如此并不意味着您应该去学习它。那为何要使用F#呢?作为一种函数式编程语言,F#使得某些领域的编程要比命令式编程(如使用C#)更为容易。并行编程(Parallel Programming)和面向语言编程(Language-Oriented Programming)是其中的两个领域。

 

 

F#语言交互式设计窗口

如果您曾经编写过.NET应用程序,并感觉自己在努力使用手头的语言表达自己的想法,也许F#就是您在寻找的。F#主要是由Microsoft Research 和 Visual Studio 小组协作开发的,并采纳了F#社区和一些主要使用者的意见。F#为Visual Studio 2010带来了很大的改观。因为替代了局部程序中的元组使工作变的简单了。在异步编程和强类型对于浮点编码方面也提供的不错的解决方式。可以说F# 是Visual Studio 2010中结合了众多优点的编程语言。

在F#中函数可以被视为值,可以传递给其他函数,你可以方便地编写高阶函数;F#支持组合式编程,你可以通过使用简单的操作符语法来组合函数;F#提供了支持函数式编程风格的类型,如针对简单数据集合的元组和针对结构化符号数据的discriminated unions;F#提供了许多不可变的数据结构,如不可变的列表、映射、集合、序列和记录等;F#支持异步编程,并且提供了使这种编程比以往更容易的结构;Visual F#中还包括了一个F#解释器,F#互动器(fsi.exe),它能够以交互方式编译并执行代码;F#支持延迟计算,这可以使您直到需要结果时才进行计算;F#支持面向对象语言特征,除了让您使用F#语言开发.NET框架API外,这种特征可以使F#程序能够充分地访问.NET框架。当然除此以外,F#还支持如面向对象语言特征,支持命令式编程结构,支持数学计算等特性。在VS2010中F#除了特征广泛外,它的特点还包括比如说简单简洁的句法、并行和异步的编程。

我们先来看其简单简洁的句法:

  F#像C#一样,是一种强制型的语言。但是我也可以使用类似在Python中那样的方式。既轻量级的,灵活的,数学类的编程方式。

  let data = (1,2,3)

  let rotations (x, y, z) =

  [ (x, y, z);

  (z, x, y);

  (y, z, x) ]

  let derivative f x =

  let p1 = f (x - 0.05)

  let p2 = f (x + 0.05)

  (p2 - p1) / 0.1

  let f x = 2.0*x*x - 6.0*x + 3.0

  let df = derivative f

  System.Console.WriteLine("The derivative of f at x=4 is {0}", df 4.0)

  其运行结果为:“The derivative of f at x=4 is 10”。

 

  在并行和异步编程上,.NET Framework 4 和Visual Studio 2010中,包含了一个关于并行程序开发的庞大文档和工具库。F#提供了一种强健的编程模式和灵活优秀的功能,使这些显现的更为直观。最为重要的是,我们可以在过去习惯了的线性编程模式下进行异步编程。

  let http url =

  async { let req = WebRequest.Create(Uri url)

  let! resp = req.AsyncGetResponse()

  let stream = resp.GetResponseStream()

  let reader = new StreamReader(stream)

  let! contents = reader.AsyncReadToEnd()

  return contents }

  let sites = ["http://bing.com"; "http://microsoft.com";"http://msdn.com"; "http://msnbc.com"]

  let htmlOfSites =

  Async.Parallel [for site in sites -> http(site)]

  |> Async.RunSynchronously

以上就是Visual Studio 2010中F#语言简单介绍,在使用过程中肯定会有更多的体验。

 

 

农行网上银行支付接口:商户代理卖方挂单成交功能测试 Windows Phone 7 实现简单的GPS定位器 C#如何删除string中的Html标记 ImageStone图像处理C++类库 jQuery Mobile 开发入门手册--概述 jQuery Mobile 开发入门手册--技术理论 jQuery Mobile 开发入门手册--组件 SMTP/POP3收发邮件的C#类库SmtPop.Net 用C#编写的Telnet开源类库 Visual Studio C#创建Windows服务(Windows Service) C#取得Windows服务列表 C#编程自动安装Windows服务 C#安装/删除 .NET Windows服务 C#启动、停止、重启Windows服务 jQuery实现Ajax提交form表单的简单方法 字符串String与枚举Enum之间的转换[C#] Javascript统计DOM元素里文字的行数 C#从Web网站下载文件 C#得到区域名称列表 C#合并多个PrintDocument WpWidgetLibrary - Windows Phone的HTML部件库(Widgets) 让你不再害怕C语言指针 C语言概述-C语言教程 Turbo C 2.0集成开发环境的使用(上)-C语言教程 Turbo C 2.0集成开发环境的使用(下)-C语言教程 程序的灵魂—算法-C语言教程 数据类型、运算符与表达式(上)-C语言教程 数据类型、运算符与表达式(下)-C语言教程 最简单的C语言顺序程序设计-C语言教程 分支结构程序-C语言教程 循环控制-C语言教程 关于Datalist的弱弱问题:怎样显示全部数据? 深圳哪儿有分期付款的笔记本卖啊,知道的进来,散分 抢在编译器之前!!!! EventArgs e做何解? 如何读取Excel表中的数据 知道一个文件名d:/1.bmp,想复制另一文件d:/2.bmp,怎么写?在线等候 GIF动画图片 我的一个dbgrid的连到一个datasource名是dtds,然后dtds的dataset是一个adoquery,现在当我在dbgrid上选择了几个记录后,如何把所有被选择 如何在Delphi6 程序中,把数据库(BDE)连接的用户名、密码写进程序中? 汉字组成的字符串转成char[]数组,再组合起来就出现乱码 WEB控件 textbox控件的问题,我从来没有遇到过,真奇怪? 求救!在线等 向高手求救,有关java中文的问题!!! 怎样在数据库中查出本周的记录。是ACCESS数据库。为什么高手都不进来。是问题太难吗 如何将任务栏的图标隐藏? 怎么google上不去了? SQL简单问题 关于html中进行文本编辑中操作图片的问题?请各位大虾来看看结贴一定给分 哪儿有H.323的资料呀? 我是菜鸟: ReportBuilder 中明细记录的序号怎么加? 屏蔽输入的字符 求解分数排名的权数确定 如何实现海量数据数据库的快速查询?? 有谁知道TreeView的AutoSelect属性是干嘛用的?? vc60编译出错问题? 请问编写调试JavaScript用什么软件比较好? 救命啊!!!!! 和父母一直搞的不好,怎么办? 客户端连接问题 求救 VFP:event.prg不存在? 宏和内联函数有什么具体的区别 请问如何将HTML页面直接插入TWebBrowser而不通过文件存取?谢谢! 如何将任务栏的图标隐藏? SQL Server7.0我的一个表才5万条数据,用这样的SQL Select * from Diner 语句查询要几十秒钟?太慢了。 请高手指点迷津!!! 2035年9月7日新华社报道 我的IE菜单怎么变成英文的了? GetFileVersionInfoSize,GetFileVersionInfo, VerQueryValue通过他们...... 谁知道文件上传组件:w3upload ,哪里有下载? 向高手求救,有关java中文的问题!!! 请教关于信息分析的好的软件有哪些?(100分) 急!如何使JTable中的某一列中的所有单元格只能输入数字?(急需源代码!)感谢! 怎样判断数据连接? 你是一个真正的程序员吗? 串口接收二进制数据一问,高分相送 关于关机的问题 Linux gcc 一弱弱问题 关于《阳春白雪》安装的问题,急! 发现index.aspx页面的ImageButton事件无法跟踪调试 怎么google上不去了? VB当中相当于VC当中的Continue(跳出一次循环,接着进行下一次循环)的语句是什么? 请问风力发电用什么发电机? 问问黏土就是橡皮泥吗?,价格多少? PCB中SMT封装怎么做?因为SMT加工的时候经常被投诉“封装Pin脚太短,焊接不好”“封装Pin脚太长,不爬锡焊接不好”.搞得很被动,一会说长,一会说短!如0402;FQPF128;QFN48之类常见封装,该如何定义Pin chip(薯条)可不可数? 风力发电用哪种发电机 化学元素符号的书写顺序是什么?有金属的肯定金属在前,非金属在后.氧化物氧在后,但如果是既没有金属原子成分也没有氧原子呢?比如HCL,凭什么氯在氢后头? lim(x→-∞)[(√(x+2)(x+5))+x]=__..根号下是(x+2)乘于(x+5) 后面加的x不在根号下 中国古代农业发展史的革命.农业是我国两千多年封建社会的立国之本,农业生产技术的革新历来受到重视,下列哪一项是我国农业发展史上的一次革命( A.筒车.B.铁农具.C.都江堰水利工程.D.牛 为什么胰蛋白酶处理可以使细胞分散? 有一道关于极限的简单题目已知xn=(-1)n次方/(n+1)2次方,证明数列{xn}的极限是0证明如下|xn-a|=|(-1)n次方/(n+1)2次方-0|=1/(n+1)2次方0(设ε 我国古代农业发展史! 太空泥干了怎麼办 简述近代中国社会中出现的新观念,你怎样看待这一现象 比较珠江三角洲地区和辽中南地区工业发展的不同特点,从地理条件,原料等方面分析其原因 太空泥干了怎么办 依据材料一指出明清时期出现的新的经济现象是什么 中国古代语言发展史先秦两汉语言为文言文,后代亦有古文家模仿文言文,那么,两汉后通用语言是什么?除文言文外古代还有什么语言吗? 如何检测水里的重金属 中日甲午战争与~辛丑条约 给中国带来了什么 汽车本身装有防紫外线玻隔热玻璃还用贴膜吗? 太空泥有毒么 泰山石隔剪是什么意思 地震之前有那些预兆? 太空泥如何调色 甲午战争给中国带来了什么?甲午战争除了给中国带来了灾难外,还带来了觉醒,让封关闭守的中国知道自己不如别人了.我想知道多一些关于中国为什么在甲午战争中醒来的条件、原因,或别的 中国古代的钱币a.中国在秦朝之前的钱币是多种多样的,有哪些形状呢?请写下表:b.有些古代钱币上还刻有文字,它们代表了什么呢?照样子描下来.c.有些同学们在花鸟市场发现,一些古代的同伴 太空泥弄到床单上怎么办 谁知道泰山石敢挡是什么意思啊? 中国古代钱币的问题1·比如哪个朝代的钱币相当于现在的多少元2·不限朝代,越多越好 求一个极限, 院里放泰山石是什么意思 现金最贵的中国古代钱币是什么? 请问一个求极限的问题请问求极限的过程中什么情况下能把式子中的一部分用该部分的极限值代替,我只知道0比0型是不行的,请问还有其他的吗, 铜与硫酸银溶液的反映现象,及其讲解 自来水会存在重金属超标的情况吗?现在城市自来水还能喝吗? 请问SMT 和 EMS 和PCB和HDI的全拼是什么,啥意思 泰山石什么作用?摆放时注意什么? 四川省绵阳市自来水是否重金属超标? 电子行业中,PCB,SMT,FTB这三个缩写的全称是什么意思呢? 中国古代桥梁知识 净水 器出来的水会不会重金属超标了? 目前从事SMT行业,主要负责设备方面,哪位前辈可以说说设备这块主要工作内容是什么?比如日检,保养,还有备件类的 中国古代桥梁之最(举3中以上) 老师说胃蛋白酶可以水解蛋白质.那是不是一般来说所有的蛋白酶都可以水解蛋白质.快拉快拉.我急. 血浆中的水来自.A.淋巴,组织液B,消化道,淋巴,组织液答案:B. 请问为什么血浆中的水有来自消化道的? 我国有那些古代名桥? 胃蛋白酶能相互水解吗?为什么? 强生膜怎样 高铁酸钠、明矾、氯气、次氯酸盐哪种的净水效果最好?如题 胃蛋白酶和胰蛋白酶能互相水解吗胃蛋白酶和一胰蛋白酶在都不失活的情况下 呼吸酶在哪里生成的? 硫酸四氨合铜和硫酸反应的产物是什么? 胃蛋白酶能否将自己水解? 植物呼吸用的酶在哪 硫酸四氨合铜与氢氧根方程式 如何除去自来水中重金属、铁锈及其他杂质? SMT厂和PCB厂是一样吗半导体盲,啥都不懂,老板让搜集PCB组装厂的信息,不知道SMT厂是不是属于这一类,如果不是请解释一下区别 发电机叶片直径大概要多大风力发电机的叶片 直流发电机 最终用途是给手机充电 但是要先给蓄电池充电 蓄电池大概12V 容量15-20AH 自来水真的含很多重金属吗 呼吸酶在哪合成?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘