博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
F#创建者Don Syme谈F#设计原则
阅读量:6718 次
发布时间:2019-06-25

本文共 1315 字,大约阅读时间需要 4 分钟。

在.Net Fringe 2016大会上,F#创建者Don Syme他对F#现状的看法以及F#的二元性。F#是以一个为面向对象语言构建的运行时为基础构建的函数式语言。

\\

F#是2010年发布的,遵循开源许可协议。F#比.Net更早地踏上了开源之路,C#和.Net在2015年才开源。将F#开源主要是为了增加其公信力。那时,一门语言想要得到开发人员和企业的重视,开源是必须的。

\\

为.NET带来一门新语言的计划由来已久。函数式编程语言是隔离的,运行在自己的VM里。互操作标准(C调用、COM、CORBA、XML)让语言集成变得困难。

\\

F#的做法是使用一个已经被广泛采用的运行时,并在必要时采取折衷的办法。该语言在设计时就考虑了互操作性。像Scala和Swift这类较新的语言经常采用这种方法。

\\

F#的做法是将对象包含进来,让它们适应于面向表达式的类型化函数式编程。虽为函数式语言,但F#也支持类、抽象类和接口。

\\
//类定义\type Vector2D (dx:double, dy:double) =\    let d2 = dx*dx + dy*dy //对象固有属性\    // 导出属性\    member v.DX = dx \    member v.DY = dy\    member v.Lenght = sqrt d2\    member v.Scale(k) = Vector2D (dx * k, dy * k) // 导出方法\
\\

F#支持类、接口和抽象类。它还有一个值得注意的新增特性对象表达式,让开发人员可以匿名定义上述类型。

\\
type IMathExample =\    // 抽象方法\    abstract member Add: int -\u0026gt; int -\u0026gt; int\\    // 抽象不可变属性\    abstract member Pi : float\\// 使用对象表达式的接口实现\let obj = \  { new IMathExample with\    member this.Add x y = x + y\    member this.Pi = 3.14 }\
\\

由于F#语言几年来一直在发展,所以Syme简单介绍了该语言的现状:

\\
  • 开放、跨平台、中立、独立; \\
  • F#接受贡献; \\
  • 由非盈利性组织管理; \\
  • 通过Xamarin提供移动开发和工具支持; \\
  • 由来自微软的Visual F#工具提供Windows和Azure支持; \\
  • 是许多F#工具项目的基础; \\
  • F# 4.1的开发正在进行中。\

在谈及语言独立性时,Syme创造了一个新术语。他将“拟态独立性(mimetic independence)”定义为一种能力,借助这种能力可以将一种技术定义为独立于另外一种技术、联盟或既定利益的理念。虽然F#实现了拟态独立性,但我们仍然必须承认微软对此作出的巨大贡献。作为一个反例,Visual Basic就不符合这个条件,因为它完全依赖于微软。

\\

查看英文原文:

转载地址:http://atumo.baihongyu.com/

你可能感兴趣的文章
JavaWeb:实现文件上传
查看>>
mysql: unknown variable 'character_set_client=UTF8'
查看>>
zabbix3.0监控的配置
查看>>
SSL/TLS部署最佳实践
查看>>
Screen字符桌面共享
查看>>
2015-08-22 linux命令练习3
查看>>
我的hosts文件
查看>>
Google偏爱HTTPS SSL加密链接网站
查看>>
MapReduce作业运行第三方配置文件的共享方法
查看>>
PHP 用户注册
查看>>
26_事务语法
查看>>
Linux常见命令详解1
查看>>
idea:安装配置Git和Github或码云
查看>>
获取各种编码的识别符
查看>>
搭建dnsmasq服务器,局域网内部解析
查看>>
关于 PChar 串的结束 - 给 "厨师" 的回复
查看>>
day3-Nfs
查看>>
day4-Httpd
查看>>
Linux下STM32工程搭建
查看>>
pstree
查看>>